1

我有一个基于 WCF 数据服务的 oDate 源。当我浏览它时,我会看到如下日期:

<d:SignedUp m:type="Edm.DateTime">2001-01-01T00:00:00</d:SignedUp>

当我使用 jQuery 和 JSONP 检索这些数据并提醒日期时,我看到:

/Date(978307200000)/

我需要将此值转换回 Date 对象,然后我可以根据需要对其进行格式化,但我不知道如何执行此操作。

4

2 回答 2

1

使用类似以下函数将您的 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);
};
于 2012-06-28T10:54:41.900 回答
1

您还可以将您的服务更新为 OData V3 (WCF Data Services 5.0),并从客户端请求 JSON 为 V3(MinDataServiceVersion 标头设置为 3.0)。在 V3 Verbose JSON 中,日期时间格式已从 /Date(...)/ 更改为大多数 jscript 库应该能够正常读取的典型 XSD 格式。

于 2012-06-28T11:44:42.033 回答