Date.prototype.Format = function (fmt) {
let o = {
'M+': this.getMonth() + 1, //月份
'd+': this.getDate(), //日
'h+': this.getHours(), //小时
'm+': this.getMinutes(), //分
's+': this.getSeconds(), //秒
'q+': Math.floor((this.getMonth() + 3) / 3), //季度
S: this.getMilliseconds(), //毫秒
};
let arr = fmt.match(/(y+)/);
if (arr && arr.length > 0) {
fmt = fmt.replace(
arr[1],
(this.getFullYear() + '').substring(4 - arr[1].length),
);
}
for (let k in o) {
let arr2 = fmt.match(new RegExp('(' + k + ')'));
if (arr2 && arr2.length > 0) {
fmt = fmt.replace(
arr2[1],
arr2[1].length === 1
? o[k]
: ('00' + o[k]).substring(('' + o[k]).length),
);
}
}
return fmt;
};
日期格式化已经是很老的一个实现了,但网上大部分的日期格式化代码中都有部分实现已弃用,如下图,我这里替换了一下已弃用的代码,实现见上。
// 已弃用
RegExp.$1