4

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

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

看到这个小提琴

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

编辑:我从另一家公司得到数据。我无法更改它生成的数据。那么这里有什么建议呢?

生成的数据:

{"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"]}
4

3 回答 3

7

刚遇到这个问题,研究了一下。

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

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

所以看来 Chrome 是错误的。

于 2014-01-29T16:59:22.093 回答
5

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

假设一天有 24 小时。如果第一个小时是 00,那么最后一个小时是 23。

于 2012-07-19T15:27:41.437 回答
1

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

于 2012-07-19T15:29:37.807 回答