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

时间:2014-12-13 06:46:37

标签: javascript jquery date datetime

我有字符串dateTime值“01-01-2013 12:00:00 AM”,并使用Date.parse("01-01-2013 12:00:00 AM")解析为DateTime。这在Google Chrome和IE浏览器中运行良好。但不适用于 Firefox 。任何人都可以帮助如何在 Mozilla Firefox 中将此特定字符串解析为dateTime值。

谢谢, Bharathi。

1 个答案:

答案 0 :(得分:3)

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节格式的参数(或任何格式不   在ES5中被认可为不包含时区的ISO 8601   信息。

     

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规范声明:如果String不符合   该功能的标准格式可以归结为任何   特定于实现的启发式或特定于实现的解析   算法。无法识别的字符串或包含非法元素的日期   ISO格式字符串中的值将导致Date.parse()返回   NaN

有关详细信息,请参阅this documentation