我有字符串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。
答案 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。