t-comm
Version:
专业、稳定、纯粹的工具库
42 lines (38 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function isInTimeRange(_a) {
var daysOfWeek = _a.daysOfWeek,
start = _a.start,
end = _a.end,
_b = _a.now,
now = _b === void 0 ? new Date() : _b;
if (!Array.isArray(daysOfWeek) || daysOfWeek.length === 0 || !start || !end) {
return false; // 没有定义有效的时间段
}
var dayOfWeek = now.getDay();
var inTime = dayOfWeek === 0 && daysOfWeek.includes(7) || daysOfWeek.includes(dayOfWeek);
if (!inTime) {
return false; // 不在时间段内
}
var _c = start.split(':').map(Number),
startHour = _c[0],
startMinute = _c[1];
var _d = end.split(':').map(Number),
endHour = _d[0],
endMinute = _d[1];
if (isNaN(startHour) || isNaN(startMinute) || isNaN(endHour) || isNaN(endMinute)) {
return false; // 非法时间格式
}
// 计算今天的凌晨时间
var midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate());
// 计算开始时间与结束时间
var startDate = new Date(midnight.getTime() + startHour * 60 * 60 * 1000 + startMinute * 60 * 1000);
var endDate = new Date(midnight.getTime() + endHour * 60 * 60 * 1000 + endMinute * 60 * 1000);
// 判断当前时间是否在指定时间段内
var currentTime = now.getTime();
if (currentTime >= startDate.getTime() && currentTime <= endDate.getTime()) {
return true; // 当前在指定时间段内
}
return false; // 当前不在指定时间段内
}
exports.isInTimeRange = isInTimeRange;