node-web-mvc
Version:
node spring mvc
100 lines (99 loc) • 3.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkLimit = exports.padZero = void 0;
const DateTimeTextProvider_1 = __importDefault(require("./DateTimeTextProvider"));
const padZero = (num, count) => {
let v = num.toString();
for (let i = 0, k = count - v.length; i < k; i++) {
v = '0' + v;
}
return v;
};
exports.padZero = padZero;
const checkLimit = (exp, max) => {
if (exp.length > max) {
throw new Error(`Too many pattern letters: ${exp[0]}`);
}
};
exports.checkLimit = checkLimit;
// 最小单位格式化器
exports.default = {
// 年
'y': (date, exp, locale) => {
const year = date.getFullYear();
return exp == 'yy' ? year.toString().slice(-2) : (0, exports.padZero)(year, exp.length);
},
// 月(0-) MM:不足两位补0 M:不补0 MMM 简写 MMMM 全写
'M': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 4);
const month = date.getMonth();
if (exp.length < 3) {
return (0, exports.padZero)((month + 1), exp.length);
}
return DateTimeTextProvider_1.default.getMonth(month, locale, exp.length > 3);
},
// 月份(1-12)
// 日 dd:不足两位补0 d:不补0
'd': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 2);
// d dd
return (0, exports.padZero)(date.getDate(), exp.length);
},
// 小时(24小时制) HH:不足两位补0 H:不补0
'H': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 2);
return (0, exports.padZero)(date.getHours(), exp.length);
},
// 小时(12小时制) hh:不足两位补0 h:不补0
'h': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 2);
return (0, exports.padZero)(date.getHours() % 12 || 12, exp.length);
},
// 分钟 mm:不足两位补0 m:不补0
'm': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 2);
return (0, exports.padZero)(date.getMinutes(), exp.length);
},
// 秒 ss:不足两位补0 s:不补0
's': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 2);
return (0, exports.padZero)(date.getSeconds(), exp.length);
},
// 毫秒 S SS SSS 根据配置返回对应的毫秒位数
'S': (date, exp, locale) => {
return date.getMilliseconds().toString().slice(0, exp.length);
},
// 季度
'q': (date) => Math.floor((date.getMonth() + 3) / 3).toString(),
// 当月第N周
'W': (date, exp, locale) => {
return DateTimeTextProvider_1.default.getWeekOfMonth(date, locale);
},
// 当年的第N周
'w': (date, exp, locale) => {
return DateTimeTextProvider_1.default.getWeekOfYear(date, locale);
},
// 星期
'E': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 4);
return DateTimeTextProvider_1.default.getWeek(date.getDay(), locale, exp.length === 4);
},
// 上午下午
'a': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 5);
return DateTimeTextProvider_1.default.getPAM(date.getHours(), locale);
},
// 时区偏移量
'Z': (date, exp, locale) => {
(0, exports.checkLimit)(exp, 5);
let offsetMinutes = date.getTimezoneOffset();
const sign = offsetMinutes < 0 ? '+' : '-';
offsetMinutes = Math.abs(offsetMinutes);
const hours = Math.floor(offsetMinutes / 60);
const minutes = offsetMinutes % 60;
return `${sign}${String(hours).padStart(2, '0')}${String(minutes).padStart(2, '0')}`;
},
};