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

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM