繁体   English   中英

如何将日期从oData转换为JavaScript中的日期?

[英]How can I convert a date from oData to a date in JavaScript?

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

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

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

/Date(978307200000)/

我需要将此值转换回Date对象,然后可以根据需要设置其格式,但无法解决该问题。

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

使用类似以下功能的东西将您的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);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM