思路分析
先来说明一下我们需要实现的最终效果:将时间戳转换为我们想要的时间格式,例如:2020-02-02 20:20:20、2020-02-02…
以下是一些时间格式的转换与时间的获取:
1 | const myDate = new Date(); // 获取当前时间 |
下面我们直接看代码:
JS-封装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23formatDate(num, format) {
const formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
const returnArr = [];
const date = new Date(num);
returnArr.push(date.getFullYear()); // 取得4位数的年份
returnArr.push(this.formatNumber(date.getMonth() + 1)); // 取得日期中的月份,其中0表示1月,11表示12月
returnArr.push(this.formatNumber(date.getDate())); // 返回日期月份中的天数(1到31)
returnArr.push(this.formatNumber(date.getHours())); // 返回日期中的小时数(0到23)
returnArr.push(this.formatNumber(date.getMinutes())); // 返回日期中的分钟数(0到59)
returnArr.push(this.formatNumber(date.getSeconds())); // 返回日期中的秒数(0到59)
for (const i in returnArr) {
// 判断对象是否含有某个非继承属性
if ({}.hasOwnProperty.call(returnArr, i)) {
format = format.replace(formateArr[i], returnArr[i]); // 替换
}
}
return format;
},
formatNumber(n) {
n = n.toString();
return n[1] ? n : `0${n}`;
},
JS-调用
1
2
3
4
5
6
7// 时间戳转换为日期
getFormatDate() {
const val = 1580646020000;
console.log(this.formatDate(val, 'Y-M-D h:m:s')); // 打印值为:2020-02-02 20:20:20
console.log(this.formatDate(val, 'Y-M-D')); // 打印值为:2020-02-02
console.log(this.formatDate(val, 'Y.M.D')); // 打印值为:2020.02.02
},