1

我目前有这样的日期时间格式:

2012-10-11T00:00:00Z

看起来 datejs 对尾随的“z”不满意。

在请求中,我只是使用

"\/Date(" + new Date(2012-10-11T00:00:00).getTime() + ")\/";

使其成为json所需的格式,但是当它从响应(c#后端)返回时,会自动添加“z”。有什么办法可以摆脱它或使 datejs 能够解析这种格式?

4

2 回答 2

2

更新

Checkout moment.js,它解决了 javascript 中有关日期时间的许多常见问题。

一个 5kb 的 JavaScript 日期库,用于解析、验证、操作和格式化日期。

于 2012-10-11T05:58:15.987 回答
0

如果您知道您的日期时间字符串始终采用该格式,并且始终为 UTC,您可以使用Date.UTC非常轻松地将其转换为日期对象,并为一个相当简单的函数保存加载库:

function isoStringToDate(s) {
  var d = s.match(/\d+/g);
  return new Date(Date.UTC(d[0],--d[1],d[2],d[3],d[4],d[5],d[6]||0));
}

这不关心 Z 是否存在。顺便说一句,在 javascript 中,没有时区的 ISO8601 日期时间字符串应被视为 UTC

获取时间值:

isoStringToDate('2012-10-11T00:00:00').getTime()

或者如果您想保存一些字符(冒着混淆的风险):

isoStringToDate('2012-10-11T00:00:00')*1

但我更喜欢第一个。

于 2012-10-11T06:46:30.257 回答