我目前拥有的日期时间格式是这样的:DateJS解析日期时间问题
2012-10-11T00:00:00Z
,它看起来像datejs是不愉快的结尾“Z”。
在请求,我只是使用
"\/Date(" + new Date(2012-10-11T00:00:00).getTime() + ")\/";
,使其作为JSON所需的格式,但是当它从响应(C#后端)回来,“Z”被自动添加。有什么办法摆脱它或使datejs能够解析这种格式?
我目前拥有的日期时间格式是这样的:DateJS解析日期时间问题
2012-10-11T00:00:00Z
,它看起来像datejs是不愉快的结尾“Z”。
在请求,我只是使用
"\/Date(" + new Date(2012-10-11T00:00:00).getTime() + ")\/";
,使其作为JSON所需的格式,但是当它从响应(C#后端)回来,“Z”被自动添加。有什么办法摆脱它或使datejs能够解析这种格式?
如果你知道你的日期时间字符串总是那样的格式,并且总是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
,但我喜欢的第一个更好的。
哇,moment.js真的很好,谢谢! – Ian
*所有*有关日期的问题?它是否允许您查找客户端时区(不仅仅是UTC的当前偏移量)?如果是这样,那太棒了......但是如果没有,那显然不符合你的要求。这并不是说这是一件坏事,只是不值得这样的夸张。 –
谢谢@JonSkeet;你是对的我已经更新了我的答案。 –