有时候我们会用asp.net中的JavaScriptSerializer对象来把c#对象序列化成json对象,方便js获取返回的值。但这其中我们会遇到时间格式的问题,把c#对象序列化成json对象后,其时间格式都变成"/Date(1303829757059)/"这样的格式,这时我们就需要在客户端把这种时间合适转化成正常的时间格式。这里,我提供一段js代码,使用时只要引入TimeConvertor.js文件,然后调用ConertJsonTimeAndFormat这个函数即可完成转化,TimeConvertor.js文件代码如下:
Date.prototype.format = function (format) {
/*
* eg:format="YYYY-MM-dd hh:mm:ss";
*/
var o = {
"M+": this.getMonth() + 1, //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
function ConertJsonTimeAndFormat(jsonTime, format) {
return new Date(eval(jsonTime.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).format(format);
}
在页面上进行调用:
ConertJsonTimeAndFormat(data.CreateTime, 'yyyy/MM/dd hh:mm:ss')