原文地址:https://zhengkai.blog.csdn.net/article/details/89096250

1. 问题背景

有时候后端java返回的时间格式是时间戳,这个是由于ORM映射的关系一般都映射为时间戳,所以不能直接用于显示的,例如1554710403000,需要前端js/vue进行转换。

https://cdn.nlark.com/yuque/0/2020/png/576791/1588859176278-8eb04f47-cc69-4fc5-97fd-cd1e5d2f1ee6.png#align=left&display=inline&height=402&originHeight=402&originWidth=1251&size=0&status=done&style=none&width=1251

2. 解决方案

https://cdn.nlark.com/yuque/0/2020/png/576791/1588859176342-728f1e25-097b-4161-9682-84f0c167a538.png#align=left&display=inline&height=657&originHeight=657&originWidth=1366&size=0&status=done&style=none&width=1366

// 初级转换:时间戳 => 标准格式
 formatterDate(data) {
    //blog.csdn.net/moshowgame
    var date = new Date(parseInt(data.responseTime) );
    Y = date.getFullYear() + '-';
    M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    D = (date.getDate()<10?'0'+date.getDate():date.getDate()) + ' ';
    h = (date.getHours() <10?'0'+date.getHours() :date.getHours() )+ ':';
    m = (date.getMinutes() <10?'0'+date.getMinutes() :date.getMinutes() ) + ':';
    s = (date.getSeconds() <10?'0'+date.getSeconds() :date.getSeconds() );
    return(Y+M+D+h+m+s);
}

// 高级转换:时间戳 => 标准格式
formatDate: function(time, fmt){
	//blog.csdn.net/moshowgame
    var date = time ? new Date(time) : new Date(),
        fmt = fmt || 'yyyy-MM-dd hh:mm:ss';
    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 : ('00' + str).substr(str.length));
        }
    }
    return fmt;
}