2012-10-11 42 views
1

我目前拥有的日期时间格式是这样的:DateJS解析日期时间问题

2012-10-11T00:00:00Z 

,它看起来像datejs是不愉快的结尾“Z”。

在请求

,我只是使用

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

,使其作为JSON所需的格式,但是当它从响应(C#后端)回来,“Z”被自动添加。有什么办法摆脱它或使datejs能够解析这种格式?

回答

2

更新

结帐moment.js,它已经解决了关于JavaScript的日期时间许多共同的问题。

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

+0

哇,moment.js真的很好,谢谢! – Ian

+1

*所有*有关日期的问题?它是否允许您查找客户端时区(不仅仅是UTC的当前偏移量)?如果是这样,那太棒了......但是如果没有,那显然不符合你的要求。这并不是说这是一件坏事,只是不值得这样的夸张。 –

+0

谢谢@JonSkeet;你是对的我已经更新了我的答案。 –

0

如果你知道你的日期时间字符串总是那样的格式,并且总是UTC,你可以很方便地使用​​将其转换为一个Date对象,并保存加载库一个相当简单的功能:

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日期时间字符串没有时区should be treated as UTC

要获取时间值:

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

,或者如果你想节省一些字符(在混淆的风险):

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

,但我喜欢的第一个更好的。