function hasIntersection(judgeDate, limitDuration) {
const [startJudge, endJudge] = judgeDate.split('~').map(date => new Date(date));
const limitIntervals = limitDuration.split(';');
for (const interval of limitIntervals) {
let startLimit, endLimit;
if (interval.includes('-')) {
// 处理完整的日期范围,格式为 YYYY-MM-DD HH:MM~YYYY-MM-DD HH:MM
const [startStr, endStr] = interval.split('-');
startLimit = new Date(startStr + ':00'); // 添加秒数
endLimit = new Date(endStr + ':59'); // 添加秒数
} else {
// 处理仅包含时间的范围,格式为 HH:MM~HH:MM
const [startStr, endStr] = interval.split('~');
const startParts = startStr.split(':').map(Number);
const endParts = endStr.split(':').map(Number);
startLimit = new Date(startJudge.getFullYear(), startJudge.getMonth(), startJudge.getDate(), startParts[0], startParts[1], 0);
endLimit = new Date(startJudge.getFullYear(), startJudge.getMonth(), startJudge.getDate(), endParts[0], endParts[1], 59);
}
if ((startJudge <= endLimit && endJudge >= startLimit) || (startLimit <= endJudge && endLimit >= startJudge)) {
return true;
}
}
return false;
}
判断时间区域
于 2025-01-14 22:52:07 首次发布