UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

42 lines (38 loc) 1.52 kB
'use strict'; 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;