首页  >  文章  >  web前端  >  为什么 `new Date(\'YYYY-MM-DDTHH:MM:SS\')` 在 Chrome 和 Firefox 中产生不同的结果?

为什么 `new Date(\'YYYY-MM-DDTHH:MM:SS\')` 在 Chrome 和 Firefox 中产生不同的结果?

Susan Sarandon
Susan Sarandon原创
2024-10-27 01:49:30244浏览

Why Does `new Date('YYYY-MM-DDTHH:MM:SS')` Produce Different Results in Chrome and Firefox?

创建日期对象的跨浏览器兼容性

使用 JavaScript 将日期字符串解析为 Date 对象时,不同浏览器之间会出现差异,例如如 Chrome 和 Firefox。当使用 new Date() 构造函数解析格式为“YYYY-MM-DDTHH:MM:SS”的日期字符串时,这种差异变得很明显。

在提供的代码片段中:

<code class="js">var date = new Date('2013-02-27T17:00:00');</code>

Firefox 将输入字符串解释为本地时间并添加本地时区偏移量 (GMT 0700)。这会导致日期比预期 UTC 时间早一天,产生:

Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)

相反,Chrome 会正确地将字符串解析为 UTC 时间并返回预期结果:

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)

解决方案

为了确保跨浏览器的行为一致,请将“Z”附加到日期字符串以明确指示 UTC 时间。 UTC 的正确格式为“YYYY-MM-DDTHH:MM:SSZ”。

<code class="js">var date = new Date('2013-02-27T17:00:00Z');</code>

此修改将解决差异并在 Chrome 和 Firefox 中产生相同的结果,反映原始 UTC 时间:

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)

以上是为什么 `new Date(\'YYYY-MM-DDTHH:MM:SS\')` 在 Chrome 和 Firefox 中产生不同的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn