Firefox不会识别24:00:00

时间:2012-07-19 15:13:03

标签: javascript jquery datetime

以下代码在Chrome中生成输出NaN,而Firefox生成1247547600000

var str = "2009/07/13 24:00:00-0500";
document.write(Date.parse(str));

请参阅此fiddle

如何解决这个问题? 谢谢!

编辑:我从其他公司获得了数据。我无法更改它生成的数据。那么这里的建议是什么?

生成的数据:

{"day":"2009-07-13", "work":["11:16:35-12:03:12", "12:32:48-13:26:28", "13:39:09-13:39:12", "13:41:03-13:41:05", "14:18:09-24:00:00"]},
{"day":"2009-07-14", "work":["00:00:00-07:22:25", "07:22:25-07:22:28", "10:10:04-10:10:31", "10:10:32-10:15:33", "10:18:07-10:21:19", "11:04:49-11:06:15", "11:12:50-11:19:05", "11:19:11-11:19:19", "11:45:50-11:51:42", "11:51:43-11:53:55", "14:03:13-14:13:04", "14:23:55-14:31:28", "14:31:28-14:38:00", "14:38:00-14:49:04", "16:34:56-16:44:33", "16:46:37-16:48:10", "16:48:11-24:00:00"]}

3 个答案:

答案 0 :(得分:6)

刚出现这个问题并对其进行了研究。

根据维基百科:(见http://en.wikipedia.org/wiki/ISO_8601

  

午夜是一个特例,可以称为“00:00”和   “24:00”。在日历的开头使用符号“00:00”   一天,是更常用的。在一天结束时使用“24:00”。   请注意,“2007-04-05T24:00”与“2007-04-06T00:00”的瞬间相同   (参见下面的组合日期和时间表示)。

所以Chrome似乎错了。

答案 1 :(得分:5)

您要求浏览器解析无效时间。 24:00无效。你可能意味着第二天的0点。 Chrome拒绝它是正确的。 Firefox只是更宽容。

考虑一天24小时。如果第一个小时是00,那么最后一个小时是23。

答案 2 :(得分:1)

Chrome是对的,24:00不存在。这一天在23:59:59结束,然后第二天从00:00:00开始。 您的代码不应生成24:00:00 的日期,因为您无法保证浏览器如何解释它,或者即使它现在和将来都有效。