mihawk
Version:
A tiny & simple mock server tool, support json,js,cjs,ts(typescript).
63 lines (62 loc) • 2.44 kB
JavaScript
;
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;