代码实现如下
//拓展Date的format方法
//将日期转为指定格式的字符串
(function (Date) {
if (Date.prototype.format)
return;
Object.defineProperty(Date.prototype, "format", {
value: function (format) {
var fullyear = this.getFullYear().toString();
var year = this.getYear().toString();
var month = (this.getMonth() + 1).toString();
var day = this.getDate().toString();
var hour = this.getHours().toString();
var minute = this.getMinutes().toString();
var second = this.getSeconds().toString();
var millisecond = this.getMilliseconds().toString();
if (month < 10)
month = '0' + month;
if (day < 10)
day = '0' + day;
if (hour < 10)
hour = '0' + hour;
if (minute < 10)
minute = '0' + minute;
if (second < 10)
second = '0' + second;
return format
.replace(/yyyy/ig, fullyear)
.replace(/yy/ig, year)
.replace(/mm/ig, month)
.replace(/dd/ig, day)
.replace(/hh/ig, hour)
.replace(/mi/ig, minute)
.replace(/ss/ig, second)
.replace(/fff/ig, millisecond);
},
enumerable: false
});
})(Date);
调用示例
//测试日期格式化:
var date = new Date();
console.log(date.format('yyyy-mm-dd hh:mi:ss'));//2023-02-17 14:54:57
date = new Date(date.setDate(date.getDate() + 1));
console.log(date.format('yyyy/mm/dd'));//2023/02/18
console.log(date.format('hh:mi yyyy年MM月dd日'));//14:54 2023年02月18日