如果不經轉化修改,一般情況下json時間格式一般是如下格式:
Date(1436595149269)
通常我們用ajax獲取下來的json數據,如果有時間,都是這種格式.其中的數字表示的是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);
})
另一種方式:
<!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>