服务器返回给我们时间一般都是一串数字,如下图:
Snipaste_2020-07-01_18-14-06.jpg
这就是时间戳,是以Unix时间元年为起点,返回的一个时间戳,因为直接返回2020-6-30这样的时间格式有很多种,并不固定,如果服务器直接写死了一种返回格式,就会对我们的使用非常的不友好,且不够灵活,所以服务器返回一般都是时间戳这种形式。
那么我们需要做的就是将时间戳转化成格式化字符串,代码如下:
function formatDate(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt;
};
function padLeftZero (str) {
return ('00' + str).substr(str.length);
};
正则表达式相关指路 https://www.jianshu.com/p/4987902ae400
//使用这个函数方法
showDate(value) {
//1.将时间戳转换为Date对象
const date = new Date(value*1000)
//2.将Date 进行格式化
return formatDate(date,'yyyy-MM-dd hh:mm:ss')
}
因为太常用了,随手记录。
网友评论