【发布时间】:2016-09-06 10:33:22
【问题描述】:
在 IE 11 浏览器上,以下语句返回无效的日期响应:new Date("2016-03-09T22:40:05.653-0800")。 在 chrome/firefox 上,它返回有效日期。
请推荐我!
【问题讨论】:
标签: javascript java ruby-on-rails angularjs
在 IE 11 浏览器上,以下语句返回无效的日期响应:new Date("2016-03-09T22:40:05.653-0800")。 在 chrome/firefox 上,它返回有效日期。
请推荐我!
【问题讨论】:
标签: javascript java ruby-on-rails angularjs
这几乎是 ISO-8601 格式的日期/时间,但不完全是……UTC 偏移量中没有冒号。看起来 Chrome 和 Firefox 的 ISO-8601 解析不像 IE 那样挑剔。
如果您将代码更改为:
new Date("2016-03-09T22:40:05.653-08:00")
...那么在 Chrome 和 IE11 中都可以。 (我还没有测试过 Firefox,但我希望它没问题。)
"-0800" 是 ISO-8601 basic 格式的有效 UTC 偏移量,但没有冒号。 Chrome 和 IE 都不想处理格式正确的基本 ISO-8601 值,例如“20160309T224005-0800”。
【讨论】:
给日期构造函数的字符串应该是 RFC2822 或 ISO 8601 格式的日期。在你的例子中它不是。请尝试以下操作:
new Date("2012-11-02T19:30:00.000Z");
【讨论】:
根据specification,我认为时区应该指定为-08:00。
【讨论】: