UNPKG

t-comm

Version:

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

131 lines (129 loc) 4.94 kB
/** * 获取几天前的时间戳 * @private * @param {boolean} n 几天前 * @returns {number} 时间戳 */ function getTimeStamp() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return Date.now() - n * 24 * 60 * 60 * 1000; } /** * 获取几天前的起始时间戳 * @param {boolean} n 几天前 * @returns {number} 时间戳 * @example * ```ts * // 默认返回秒级时间戳(今日 0 点 0 分 0 秒) * getDayStartTimestamp(0); * // 返回毫秒级时间戳 * getDayStartTimestamp(0, 'ms'); * // 获取三天前的起始时间戳(秒级) * getDayStartTimestamp(3); * ``` */ function getDayStartTimestamp() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 's'; var time = getTimeStamp(n); var date = new Date(time); date.setHours(0, 0, 0, 0); if (unit === 'ms' || unit === 'MS') { return date.getTime(); } var startTime = parseInt("".concat(date.getTime() / 1000), 10); return startTime; } /** * 获取几天前的终止时间戳 * @param {boolean} n 几天前 * @param {string} unit 返回时间戳的单位,默认是s(秒) * @param {string} endFlag 以什么单位作为结束时间,默认分钟,即 23时59劆0秒0毫秒 * @returns {number} 时间戳 * @example * ```ts * // 默认返回今日 23:59:00 的秒级时间戳 * getDayEndTimeStamp(0); * // 返回毫秒级 * getDayEndTimeStamp(0, 'ms'); * // 以秒为结束单位,返回 23:59:59 毫秒级 * getDayEndTimeStamp(0, 'MS', 's'); * // 以毫秒为结束单位,返回 23:59:59.999 * getDayEndTimeStamp(0, 'MS', 'ms'); * // 以小时为结束单位,返回 23:00:00 * getDayEndTimeStamp(0, 'MS', 'h'); * ``` */ function getDayEndTimeStamp() { var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 's'; var endFlag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'm'; var time = getTimeStamp(n); var date = new Date(time); if (['h', 'hh', 'H'].indexOf(endFlag) > -1) { date.setHours(23, 0, 0, 0); } else if (['m', 'mm', 'M'].indexOf(endFlag) > -1) { date.setHours(23, 59, 0, 0); } else if (['s', 'ss', 'S'].indexOf(endFlag) > -1) { date.setHours(23, 59, 59, 0); } else if (['ms', 'MS'].indexOf(endFlag) > -1) { date.setHours(23, 59, 59, 999); } if (unit === 'ms' || unit === 'MS') { return date.getTime(); } var endTime = parseInt("".concat(date.getTime() / 1000), 10); return endTime; } function getTodayStartTimestamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; return getDayStartTimestamp(0, unit); } function getTodayEndTimeStamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; var endFlag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'm'; return getDayEndTimeStamp(0, unit, endFlag); } function getYesterdayStartTimeStamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; return getDayStartTimestamp(1, unit); } function getYesterdayEndTimeStamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; var endFlag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'm'; return getDayEndTimeStamp(1, unit, endFlag); } function getDBYStartTimeStamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; return getDayStartTimestamp(2, unit); } function getDBYEndTimeStamp() { var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's'; var endFlag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'm'; return getDayEndTimeStamp(2, unit, endFlag); } /** * 查询距今有多少天 * @param date 时间 * @returns 距今多少天 * @ignore */ function getDaysFromToday(date) { var zero = new Date(date); zero.setHours(0, 0, 0, 0); var now = new Date(); now.setHours(0, 0, 0); var days = (now.getTime() - zero.getTime()) / (1 * 24 * 60 * 60 * 1000); return parseInt("".concat(days), 10); } function getSomeDayStartTimeStamp(date) { var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 's'; var days = getDaysFromToday(date); return getDayStartTimestamp(days, unit); } function getSomeDayEndTimeStamp(date) { var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 's'; var days = getDaysFromToday(date); return getDayEndTimeStamp(days, unit); } export { getDBYEndTimeStamp, getDBYStartTimeStamp, getDayEndTimeStamp, getDayStartTimestamp, getSomeDayEndTimeStamp, getSomeDayStartTimeStamp, getTodayEndTimeStamp, getTodayStartTimestamp, getYesterdayEndTimeStamp, getYesterdayStartTimeStamp };