我有一个基于WCF数据服务的oDate源代码。当我浏览它时,我看到的日期如下:
<d:SignedUp m:type="Edm.DateTime">2001-01-01T00:00:00</d:SignedUp>
当我使用jQuery和JSONP检索此数据并提醒日期时,我看到:
/Date(978307200000)/
我需要将此值转换回Date对象,然后我可以根据需要进行格式化,但我无法确定如何执行此操作。
答案 0 :(得分:1)
您还可以将服务更新为OData V3(WCF数据服务5.0),并从客户端请求将JSON更新为V3(MinDataServiceVersion标头设置为3.0)。在V3 Verbose JSON中,日期时间格式已从/Date(...)/更改为典型的XSD格式,大多数jscript库应该能够正常读取。
答案 1 :(得分:0)
使用类似以下函数的内容将Json日期转换为数据对象:
function parseJsonDate(jsonDate) {
var offset = new Date().getTimezoneOffset();
var parts = /\/Date\((-?\d+)([+-]\d{2})?(\d{2})?.*/.exec(jsonDate);
if (parts[2] == undefined)
parts[2] = 0;
if (parts[3] == undefined)
parts[3] = 0;
return new Date(+parts[1] + offset + parts[2] * 3600000 + parts[3] * 60000);
};