【问题标题】:Chrome not recognizing 24:00:00 while Firefox doesChrome 无法识别 24:00:00 而 Firefox 识别
【发布时间】:2012-07-18 19:35:45
【问题描述】:

以下代码在 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"]}

【问题讨论】:

标签: javascript jquery datetime


【解决方案1】:

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

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

【讨论】:

  • 我实际上是从另一家公司获得数据,如果我们无法更改它生成的数据,您有什么建议?
  • 与公司讨论修复他们的不良数据,除非使用正则表达式将 24:00:00 转换为 00:00:00,但这只能解决部分问题,公司是否意味着第二天?如果是这样,那么您还必须增加一天,如果不是......那么这些数据真的很混乱
  • 我把数据放在我的问题中。这并不意味着 24:00:00 是一天的增量。第二天只有 00:00:00。
【解决方案2】:

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

【讨论】:

  • 我们得到的数据来自另一家公司,我们需要根据这些数据生成图表。所以当我尝试解析数据时,就会出现错误。
  • 所以你有问题我的朋友。我认为您唯一的解决方案是检查日期字符串并将其更改为您找到 24:00...
  • 谢谢,但这与unix时间戳有区别吗?因此,如果我手动将他们的数据从 24:00:00 更改为 23:59:59,那么我需要添加一秒钟的 unix 时间戳以使我的所有数据正确显示?对吗?
  • 我认为这取决于公司的 24:00:00 到底是什么时候。我不确定日期 07/13/2009 24:00:00 是指 07/13/2009 00:00 还是 07/14/2009 00:00。我认为您的建议是正确的,但如果您可以在 24:00 与公司确认这对他们意味着什么,那就更好了。如果它表示第二天的 00:00,那么您可以在字符串上的同一天的 23:59 上添加 1 毫秒。
【解决方案3】:

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

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

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

看来 Chrome 是错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 2023-03-20
    • 1970-01-01
    • 2012-08-06
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多