JSON格式的时间“/Date(1530104033000)/”格式转为正常的年-月-日 格式的代码

解决方法1:

JS将/Date(1446704778000)/转换成str:

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.format = function (fmt) {
    var o = {
        "M+" : this.getMonth() + 1, //月份
        "d+" : this.getDate(), //
        "h+" : this.getHours(), //小时
        "m+" : this.getMinutes(), //
        "s+" : this.getSeconds(), //
        "q+" : Math.floor((this.getMonth() + 3) / 3), //季度
        "S" : this.getMilliseconds() //毫秒
    };
    fmt = fmt || "yyyy-MM-dd";
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

var time = "/Date(1530104033000)/"; 


var dateStr = eval(time.replace(//Date((d+))//gi, "new Date($1)")).format('yyyy-M-d h:m');
//关键代码:eval(time.replace(//Date((d+))//gi, "new Date($1)")).format('yyyy-M-d h:m');




解决方法2:

//格式化日期字符串
String.prototype.jsonDateFormat = function (format) {
    var date, timestamp, dtObj
    timestamp = parseInt(this.toString().replace('/Date(', '').replace(')/', '').replace(/+d+/, ''), 10)// jsonDt.replace(//Date((d+))//, "$1");
    date = new Date(timestamp)// new Date(Number(timestamp));
    dtObj = {
        'M+': date.getMonth() + 1, //
        'd+': date.getDate(), //
        'h+': date.getHours(), //
        'm+': date.getMinutes(), //
        's+': date.getSeconds() //
    }
    // 因为年份是4位数,所以单独拿出来处理
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    // 遍历dtObj
    for (var k in dtObj) {
        // dtObj的属性名作为正则进行匹配
        if (new RegExp('(' + k + ')').test(format)) {
            // 月,日,时,分,秒 小于10时前面补 0
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? dtObj[k] : ('00' + dtObj[k]).substr(('' + dtObj[k]).length))
        }
    }
    return format
}

调用示例:

var CreateTime="/Date(1571292406000)/";
CreateTime.jsonDateFormat('yyyy-MM-dd hh:mm:ss');

解决方法3:(建议采用)

引用第三方库:Moment.js  http://momentjs.cn/

安装

npm install moment --save   # npm
yarn add moment             # Yarn
Install-Package Moment.js   # NuGet
spm install moment --save   # spm
meteor add momentjs:moment  # meteor
<script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.24.0/locale/zh-cn.js"></script>

使用示例:

moment("/Date(1198908717056-0700)/"); // 2007-12-28T23:11:57.056-07:00
moment("/Date(1198908717056-0700)/").format("YYYY-MM-DD HH:mm:SS");//"2007-12-29 14:11:05"

如果这篇文章对您有帮助,您可以打赏我

技术交流QQ群:15129679

 
 
原文地址:https://www.cnblogs.com/yeminglong/p/9282730.html