JavaScript 判断未来7天开闭馆日期并返回数组 - 2023年7月示例
你可以使用 JavaScript 的 Date 对象和数组来实现这个功能。首先,你需要定义闭馆日期和当前日期。然后,你可以使用循环来遍历未来7天的日期,并判断每一天是否属于闭馆日期。根据判断结果,你可以将日期添加到一个数组中,并返回该数组。
以下是一个实现该功能的示例代码:
function getOpenCloseDates(currentDate, closedDates) {
var result = [];
var oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
// 将字符串日期转换为Date对象
var currentDateObj = new Date(currentDate);
// 循环遍历未来7天的日期
for (var i = 0; i < 7; i++) {
// 计算当前日期的时间戳
var timestamp = currentDateObj.getTime();
// 根据时间戳获取对应的年、月、日
var year = currentDateObj.getFullYear();
var month = currentDateObj.getMonth() + 1; // 月份从0开始,需要加1
var day = currentDateObj.getDate();
// 格式化日期为yyyy-mm-dd
var formattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
// 判断当前日期是否属于闭馆日期
if (closedDates.includes(formattedDate)) {
result.push({
'date': formattedDate,
'status': 'closed'
});
} else {
result.push({
'date': formattedDate,
'status': 'open'
});
}
// 增加一天的时间
timestamp += oneDay;
currentDateObj.setTime(timestamp);
}
return result;
}
// 定义闭馆日期和当前日期
var closedDates = ['2023-07-01', '2023-07-02'];
var currentDate = '2023-06-29';
// 获取未来7天的开馆和闭馆日期
var dates = getOpenCloseDates(currentDate, closedDates);
console.log(dates);
该代码会输出一个数组,每个元素包含日期和状态。例如,如果闭馆日期为2023-07-01和2023-07-02,当前日期为2023-06-29,那么输出的结果会类似于:
[
{ 'date': '2023-06-29', 'status': 'open' },
{ 'date': '2023-06-30', 'status': 'open' },
{ 'date': '2023-07-01', 'status': 'closed' },
{ 'date': '2023-07-02', 'status': 'closed' },
{ 'date': '2023-07-03', 'status': 'open' },
{ 'date': '2023-07-04', 'status': 'open' },
{ 'date': '2023-07-05', 'status': 'open' }
]
你可以根据需要进行相应的修改和调整。
原文地址: https://www.cveoy.top/t/topic/o31i 著作权归作者所有。请勿转载和采集!