了解 Chrome 和 Firefox 之间 new Date() 行为的差异
使用 new Date( 将日期字符串转换为 Date 对象时),Chrome 和 Firefox 之间出现了细微的差别。这种行为可能会令人困惑,尤其是在使用 UTC 时间字符串时。
问题中提供的代码 var date = new Date('2013-02-27T17:00:00'); 创建一个日期来自 UTC 格式的日期字符串的对象。但是,两个浏览器之间的结果有所不同:
差异的原因
差异源于日期字符串的解释。 Firefox 将字符串解释为浏览器时区中的本地时间,而 Chrome 将其解释为 UTC。因此,Firefox 将浏览器的时区偏移量添加到日期中,导致其显示时间比 UTC 晚一天。
解决方案
要解决此差异并获取为了在两个浏览器中获得正确的 UTC 时间,必须遵守 UTC 日期字符串的正确格式。正确的格式是:
YYYY-MM-DDTHH:mm:ssZ
其中:
通过将“Z”指示器添加到日期字符串的末尾,浏览器将正确解释
更新的代码:
<code class="javascript">var date = new Date('2013-02-27T17:00:00Z'); // Appends 'Z' to indicate UTC alert(date);</code>
此更新的代码现在将在 Firefox 和 Chrome 中生成相同的正确 UTC 日期对象。
以上是为什么在转换 UTC 时间字符串时 `new Date()` 在 Chrome 和 Firefox 中的表现不同?的详细内容。更多信息请关注PHP中文网其他相关文章!