JSON时间转换格式化
通常JSON时间⼀般是这样的格式。
1/Date(1436595149269)/
通常我们⽤AJAX获取下来的JSON数据,如果有时间,都是这种格式的。其中,中间的⼀段数字"1436595149269"表⽰的是1970年1⽉1⽇⾄今的毫秒数。
这种时间格式并不能够直接显⽰给⽤户查看,因为这是⼈类所看不懂的时间。所以我们需要将它转换为正常⼈能够理解的时间格式。
第⼀步,替换掉/Date()/
//对外暴露的函数,替换掉/Date( )/
function convertTime(jsonTime, format) {
var date = new Date(place("/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+": Month() + 1,
"d+": Date(),
"h+": Hours(),
"m+": Minutes(),
"s+": Seconds(),
"q+": Math.floor((Month() + 3) / 3),
"S+": Milliseconds()
};
phpjson格式化输出
if (/(y+)/i.test(format)) {
format = place(RegExp.$1, (FullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(format)) {
format = place(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 = FullYear();
var month = Month() + 1;
var day = Date();
var hh = Hours();
var mm = Minutes();
var ss = Seconds();
return year + "-" + month + "-" + day + " " + hh + ":" + mm + ":" + ss;
}
//调⽤的是这个⽅法
function ConvertJSONDateToJSDate(jsondate) {
var date = new Date(place("/Date(", "").replace(")/", ""), 10));    return date;
}
var date = "/Date(1379944571737)/";
alert(getDateTime(ConvertJSONDateToJSDate(date)));
</script>
</body>
</html>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。