核心代码
class moment {
constructor(value) {
this.value = value;
}
format(type) {
let value = this.value;
// 参数需要毫秒数,所以这里将秒数乘于 1000
if (value.toString().length === 10) {
value = value * 1000;
}
if (type) {
let date = new Date(parseInt(value));
let spDate = type;
spDate = spDate.replace(/[a-zA-Z]+/g, "").split(""); //去掉字母
let Y = date.getFullYear();
let M = this.addZero(date.getMonth() + 1);
let D = this.addZero(date.getDate());
let H = this.addZero(date.getHours());
let m = this.addZero(date.getMinutes());
let s = this.addZero(date.getSeconds());
let result = "";
if (type.indexOf("YYYY") != -1) {
result += Y + this.charFilter(spDate[0]);
}
if (type.indexOf("MM") != -1) {
result += M + this.charFilter(spDate[1]);
}
if (type.indexOf("DD") != -1) {
result +=
D + this.charFilter(spDate[2]) + (spDate[3] == " " ? " " : "");
}
if (type.indexOf("HH") != -1 || type.indexOf("hh") != -1) {
result += H + this.charFilter(spDate[spDate.length - 2]);
}
if (type.indexOf("mm") != -1) {
result += m + this.charFilter(spDate[spDate.length - 1]);
}
if (type.indexOf("ss") != -1) {
result += s;
}
return result;
} else {
let date = new Date(parseInt(value));
let Y = date.getFullYear();
let M = this.addZero(date.getMonth() + 1);
let D = this.addZero(date.getDate());
let H = this.addZero(date.getHours());
let m = this.addZero(date.getMinutes());
let s = this.addZero(date.getSeconds());
return Y + "-" + M + "-" + D + " " + H + ":" + m + ":" + s;
}
}
addZero(value) {
//补零
if (value < 10) {
return "0" + value;
} else {
return value;
}
}
charFilter(value) {
//间隔符号
if (value) {
return value;
} else {
return "";
}
}
}
// 示例一:
let time = new moment(1652186355);
console.log(time.format("YYYY"));
console.log(time.format("YYYY年"));
console.log(time.format("YYYY/MM/DD"));
console.log(time.format("HH:mm:ss"));
console.log(time.format("YYYY年MM月DD号HH:mm:ss"));
console.log(time.format("YYYY年MM月DD号 HH:mm:ss"));
console.log(time.format());
// 2022
// 2022年
// 2022/05/10
// 20:39:15
// 2022年05月10号20:39:15
// 2022年05月10号 20:39:15
// 2022-05-10 20:39:15
// 示例二:
const momentExample = (time) => new moment(time);
console.log(momentExample("1695211200000").format("YYYY年"));
//2023年