可能的重复: 如何格式化JSON日期?
我的web服务返回一个DateTime到jQuery调用。该服务以以下格式返回数据:
/Date(1245398693390)/
如何将此转换为javascript友好的日期?
可能的重复: 如何格式化JSON日期?
我的web服务返回一个DateTime到jQuery调用。该服务以以下格式返回数据:
/Date(1245398693390)/
如何将此转换为javascript友好的日期?
当前回答
我认为,从1970,1,1的转换需要双舍入到小数点后0位
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = dt.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
return Math.Round( ts.TotalMilliseconds,0);
在客户端我使用
new Date(+data.replace(/\D/g, ''));
其他回答
使用string解析日期字符串。替换为反向参考:
var milli = "/Date(1245398693390)/".replace(/\/Date\((-?\d+)\)\//, '$1');
var d = new Date(parseInt(milli));
我想加上我一直在用的解决方案。
如果你使用System.Web.Script.Serialization.JavaScriptSerializer(),那么返回的时间不会特定于你的时区。要解决这个问题,您还需要使用dte.getTimezoneOffset()将其返回到正确的时间。
String.prototype.toDateFromAspNet = function() {
var dte = eval("new " + this.replace(/\//g, '') + ";");
dte.setMinutes(dte.getMinutes() - dte.getTimezoneOffset());
return dte;
}
现在你打电话就行了
"/Date(1245398693390)/".toDateFromAspNet();
2009年6月19日星期五00:04:53 GMT-0400(东部夏令时){}
如果你在获取时间信息上有困难,你可以尝试这样做:
d.date = d.date.replace('/Date(', '');
d.date = d.date.replace(')/', '');
var expDate = new Date(parseInt(d.date));
你可以尝试第三方库,比如json.net,在项目网站上有文档。它说它需要。net 3.5。
还有一种叫做Nii。Json,我相信是从java的一个端口。我在这个博客上找到了一个链接
我认为,从1970,1,1的转换需要双舍入到小数点后0位
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = dt.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
return Math.Round( ts.TotalMilliseconds,0);
在客户端我使用
new Date(+data.replace(/\D/g, ''));