Date.parse() 在 Mozilla Firefox JavaScript 中无法正常工作

Date.parse() not working properly in Mozilla Firefox JavaScript

本文关键字:常工作 工作 JavaScript parse Mozilla Firefox Date      更新时间:2023-09-26

我有字符串 dateTime 值"01-01-2013 12:00:00 AM">,并使用 Date.parse("01-01-2013 12:00:00 AM") 解析为 DateTime。这在谷歌浏览器和IE浏览器中工作正常。但不能在火狐中工作。任何人都可以帮助如何在Mozilla Firefox中将此特定字符串解析为dateTime值。

谢谢巴拉蒂。

TL;DR 您在此上下文中使用了无效的日期格式,Chrome 和 IE 恰好处理了该格式。

完整答案:

该规范仅要求 JavaScript 实现来识别 Date.parse 中的某些格式。具体说来

它接受 RFC2822/IETF 日期语法(RFC2822第 3.3 节(,例如 "Mon, 25 Dec 1995 13:30:00 GMT"。它了解美国大陆 时区缩写,但对于一般用途,请使用时区偏移量, 例如,"Mon, 25 Dec 1995 13:30:00 +0430"(4小时30分钟 格林威治子午线以东(。如果未指定时区,并且 字符串采用 ES5 识别的 ISO 格式,假定为 UTC。格林威治标准时间 和 UTC 被视为等效。本地时区用于 以 RFC2822 第 3.3 节格式(或任何格式 在 ES8601 中被公认为 ISO 5(,不包含时区 信息。

ECMAScript 5 ISO-8601 格式支持

日期时间字符串可能采用 ISO 8601 格式。例如 "2011-10-10"(只是日期(或"2011-10-10T14:48:00"(日期和时间(可以 被传递和解析。

您的示例 01-01-2013 12:00:00 AM 不是这些格式之一。一些浏览器可能会解析它,这取决于他们使用的JavaScript引擎,但它是非标准的。Chrome 和 IE 碰巧识别出它,但 Firefox 返回 NaN ,这符合规范:

ECMAScript 规范指出:如果字符串不符合 函数可以回退到任何 特定于实现的启发式或特定于实现的分析 算法。无法识别的字符串或包含非法元素的日期 ISO 格式字符串中的值将导致Date.parse()返回 NaN .

有关更多详细信息,请参阅此文档。