如何将时间戳转化成格式化字符串

服务器返回给我们时间一般都是一串数字,如下图:


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')
}

因为太常用了,随手记录。

你可能感兴趣的:(如何将时间戳转化成格式化字符串)