JSON時間轉換格式化


通常JSON時間一般是這樣的格式。

1
/Date(1436595149269)/

通常我們用AJAX獲取下來的JSON數據,如果有時間,都是這種格式的。其中,中間的一段數字"1436595149269"表示的是1970年1月1日至今的毫秒數。

這種時間格式並不能夠直接顯示給用戶查看,因為這是人類所看不懂的時間。所以我們需要將它轉換為正常人能夠理解的時間格式。

第一步,替換掉/Date()/


 

//對外暴露的函數,替換掉/Date( )/
function convertTime(jsonTime, format) {
    var date = new Date(parseInt(jsonTime.replace("/Date(", "").replace(")/", ""), 10));
    var formatDate = date.format(format);
    return formatDate;
}

第二步,將數字時間轉換為可視化的yyyy-MM-dd HH:mm:ss的格式


//先擴展一下javascript的Date類型,增加一個函數,用於返回我們想要的 yyyy-MM-dd HH:mm:ss 這種時間格式
Date.prototype.format = function (format) {
    var date = {
        "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()
    };
     
    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
 
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
          format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
        }
    }
     
    return format;
}

調用示例


$(function () {
    var dt = '/Date(1436595149269)/';
    var formatTime1 = convertTime(dt, "yyyy-MM-dd hh:mm:ss");//2015-07-11 14:12:29
    $("#div1").text(formatTime1);
    var formatTime2 = convertTime(dt, "yyyy年MM月dd日 hh時mm分ss秒");//2015年07月11日 14時12分29秒
    $("#div2").text(formatTime2);
})

另外一個實現


另外,還有一個方式,這個就不需要改原來Date原型了。

<!doctype html>
<html>
<head>
    <title>JSON時間格式化(/Date()轉換為yyyy-MM-dd HH:mm:ss)</title>
</head>
<body>
<script>
//yyyy-MM-dd HH:mm:SS
function getDateTime(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hh = date.getHours();
    var mm = date.getMinutes();
    var ss = date.getSeconds();
    return year + "-" + month + "-" + day + " " + hh + ":" + mm + ":" + ss;
}
//調用的是這個方法
function ConvertJSONDateToJSDate(jsondate) {
    var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10));
    return date;
}
var date = "/Date(1379944571737)/";
alert(getDateTime(ConvertJSONDateToJSDate(date)));
</script>
</body>
</html>


免責聲明!

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



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