【发布时间】:2012-12-14 21:39:12
【问题描述】:
仍在学习 JavaScript 日期处理的细微差别,其中 看起来 像某处的错误。
使用 .ToUniversalTime()... 从 C# 返回记录就像一个魅力,但是,JavaScript 对返回的某些日期/时间犹豫不决。
好消息:2012-12-14T21:25:44.273Z toLocaleTimeString() 返回下午 2:25:44
坏处:2012-12-14T21:25:44.18Z 返回无效日期
丑陋的:最后的 .18Z 是什么...应该是 .018Z 还是 .180Z?而且,它是 C# 错误还是 JavaScript 错误?
【问题讨论】:
-
您是否总是有时间以
Z结尾,或者是否有其他时区(例如-10:00)? -
您正在为 JavaScript 尝试哪些浏览器或其他环境?这两个示例在 Chrome 中都可以正常工作:jsfiddle.net/veHEk.
-
我在 Chrome 中运行了它,是的,一个 IE9 错误(或没有功能)看起来像。第二个结果显示 NaN。感谢您指出这一点。
-
这种差异可能不像竞争标准那样是一个错误。 ECMA-262 指定毫秒格式为“三个十进制数字”——es5.github.com/#x15.9.1.15。然而,W3C 将它们指定为“一个或多个数字”——w3.org/TR/NOTE-datetime。所以,
.180Z会满足两者。
标签: javascript datetime iso8601