js算出48小时之后的日期时分秒排除节假日
时间: 2023-09-14 22:06:03 浏览: 52
要算出48小时之后的日期时分秒并排除节假日,可以在前面算出48小时之后的日期的基础上,再使用 moment.js 库进行时分秒的计算。以下是一个示例代码:
```javascript
// 引入 moment.js 库和 jQuery 库
<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
// 定义需要排除的节假日数组
var holidayList = ['元旦', '春节', '清明节', '劳动节', '端午节', '中秋节', '国庆节'];
// 计算48小时之后的日期
var now = moment(); // 获取当前时间
var after48h = moment(now).add(48, 'hours'); // 计算48小时之后的时间
// 循环查询是否为节假日
while (true) {
var date = after48h.format('YYYY-MM-DD'); // 获取日期字符串
var holiday = ''; // 节假日信息
$.ajax({
type: "get",
url: 'http://v.juhe.cn/calendar/day',
data: {
key: '你的聚合数据AppKey',
date: date
},
async: false, // 设置同步请求
dataType: "jsonp",
success: function (data) {
if (data.error_code == 0) {
holiday = data.result.data.holiday; // 节假日信息
} else {
console.log(data.reason);
}
},
error: function () {
console.log('请求失败');
}
});
// 如果不是节假日则退出循环
if (holidayList.indexOf(holiday) < 0) {
break;
}
// 如果是节假日则继续往后推一天
after48h = moment(after48h).add(1, 'days');
}
// 使用 moment.js 库进行时分秒的计算
var after48hWithTime = moment(after48h).set({
'hour': now.hour(),
'minute': now.minute(),
'second': now.second()
});
// 输出结果
console.log('48小时之后的日期(排除节假日)为:' + after48hWithTime.format('YYYY年MM月DD日 HH:mm:ss'));
```
以上代码中首先使用 moment.js 库计算出48小时之后的日期,并循环查询是否为节假日。然后使用 moment.js 库进行时分秒的计算,将48小时之后的日期的时分秒设置为当前时间的时分秒。最后输出排除节假日的48小时之后的日期和时间。需要注意的是,以上代码中同样使用了 jQuery 库的同步请求,这样可以保证查询节假日的结果能够及时返回并被使用。