function isWithinThreeWorkingDays(targetTimestamp) {
// 将目标时间戳调整到北京时区
var targetTimeInBeijing = targetTimestamp + 8 * 60 * 60 * 1000;
// 获取当前时间的时间戳,并调整到北京时区
var currentTime = new Date().getTime();
var currentTimeInBeijing = currentTime + 8 * 60 * 60 * 1000;
// 获取目标日期的年、月、日
var targetDate = new Date(targetTimeInBeijing);
var targetYear = targetDate.getFullYear();
var targetMonth = targetDate.getMonth();
var targetDay = targetDate.getDate();
// 获取当前日期的年、月、日
var currentDate = new Date(currentTimeInBeijing);
var currentYear = currentDate.getFullYear();
var currentMonth = currentDate.getMonth();
var currentDay = currentDate.getDate();
// 计算当前时间与目标时间的天数差
var dayDiff = Math.floor((targetTimeInBeijing - currentTimeInBeijing) / (24 * 60 * 60 * 1000));
// 判断是否在当前时间的临近三个工作日内
if (currentYear === targetYear && currentMonth === targetMonth) {
var targetWeekday = targetDate.getDay();
var currentWeekday = currentDate.getDay();
// 判断目标日期是否为周六或周日
if (targetWeekday !== 0 && targetWeekday !== 6) {
// 判断当前日期是否为周六或周日
if (currentWeekday !== 0 && currentWeekday !== 6) {
var remainingDays = targetDay - currentDay;
// 判断是否在临近三个工作日内
if (remainingDays >= 0 && remainingDays <= 3) {
return true;
}
} else if (currentWeekday === 6 && dayDiff <= 2) {
return true;
} else if (currentWeekday === 0 && dayDiff <= 1) {
return true;
}
} else if (targetWeekday === 6 && dayDiff <= 1) {
return true;
} else if (targetWeekday === 0 && dayDiff === 0) {
return true;
}
} else if (currentYear === targetYear && currentMonth === targetMonth - 1) {
var remainingDaysInCurrentMonth = new Date(currentYear, currentMonth + 1, 0).getDate() - currentDay;
var remainingDaysInTargetMonth = targetDay;
// 判断是否在临近三个工作日内(跨越周末)
if (remainingDaysInCurrentMonth + remainingDaysInTargetMonth <= 3) {
return true;
}
}
return false;
}
// 示例使用
var timestamp = 1677635721000; // 给定的时间戳,2023-06-29 16:35:21
var result = isWithinThreeWorkingDays(timestamp);
console.log(result);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。