41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
interface Date {
|
|
format(format: string): string
|
|
}
|
|
|
|
/**
|
|
* 时间格式化
|
|
* @param format
|
|
*/
|
|
Date.prototype.format = function (format: DateType | undefined = 'datetime'): string {
|
|
if (format === 'date') {
|
|
format = 'yyyy-MM-dd'
|
|
} else if (format === 'datetime') {
|
|
format = 'yyyy-MM-dd hh:mm:ss'
|
|
} else if (format === 'time') {
|
|
format = 'hh:mm:ss'
|
|
}
|
|
const o = {
|
|
"M+": this.getMonth() + 1, //month
|
|
"d+": this.getDate(), //day
|
|
"h+": this.getHours(), //hour
|
|
"m+": this.getMinutes(), //minute
|
|
"s+": this.getSeconds(), //second
|
|
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
|
|
"S": this.getMilliseconds() //millisecond
|
|
}
|
|
if (/(y+)/.test(format)) {
|
|
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
}
|
|
for (const k in o) {
|
|
if (new RegExp("(" + k + ")").test(format)) {
|
|
format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
|
|
}
|
|
}
|
|
return format;
|
|
}
|
|
|
|
|
|
// String.prototype.formatDate = function (format) {
|
|
// const time = this.replaceAll(/-/g, "/");
|
|
// return new Date(time).format(format);
|
|
// }
|