UNPKG

mihawk

Version:

A tiny & simple mock server tool, support json,js,cjs,ts(typescript).

63 lines (62 loc) 2.44 kB
'use strict'; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ensureDate = exports.getTimeNowStr = exports.dateFormat = void 0; const color_cc_1 = __importDefault(require("color-cc")); function dateFormat(date, fmt = 'yyyy-MM-dd hh:mm:ss') { const leftPadZero = (num, len = 2) => `${num}`.padStart(len, '0'); const fullYear = date.getFullYear(); const hours12 = date.getHours() % 12 || 12; const hours24 = date.getHours(); const ampm = date.getHours() >= 12 ? 'PM' : 'AM'; const tokens = { yyyy: fullYear, yy: String(fullYear).slice(-2), MM: leftPadZero(date.getMonth() + 1, 2), M: date.getMonth() + 1, dd: leftPadZero(date.getDate(), 2), d: date.getDate(), HH: leftPadZero(hours24, 2), H: hours24, hh: leftPadZero(hours12, 2), h: hours12, mm: leftPadZero(date.getMinutes(), 2), m: date.getMinutes(), ss: leftPadZero(date.getSeconds(), 2), s: date.getSeconds(), SSS: leftPadZero(date.getMilliseconds(), 3), a: ampm, A: ampm.toUpperCase(), }; return fmt.replace(/(yyyy|yy|MM|M|dd|d|HH|H|hh|h|mm|m|ss|s|SSS|a|A)/g, match => { return tokens[match] !== undefined ? tokens[match] : match; }); } exports.dateFormat = dateFormat; function getTimeNowStr() { return dateFormat(new Date(), 'yyyy-MM-dd_hh:mm:ss.SSS'); } exports.getTimeNowStr = getTimeNowStr; function ensureDate(dt, noCheck = false) { if (dt instanceof Date) { return dt; } else if (typeof dt === 'number') { return new Date(dt); } else { if (!noCheck) { const dateRegs = [ /^(\d{4})-(\d{1,2})-(\d{1,2})(?: (\d{1,2})(?::(\d{1,2})){1,2}(?: (\d{3}))?)?$/, /^(\d{4}).(\d{1,2}).(\d{1,2})(?: (\d{1,2})(?::(\d{1,2})){1,2}(?: (\d{3}))?)?$/, /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?: (\d{1,2})(?::(\d{1,2})){1,2}(?: (\d{3}))?)?$/, ]; const isOk = dateRegs.some(reg => dt.match(reg)); !isOk && console.warn(color_cc_1.default.red('⚠️ 日期字符串的格式可能有点问题,请检查! 💀'), color_cc_1.default.magenta(dt)); } return new Date(dt); } } exports.ensureDate = ensureDate;