创建日期对象的跨浏览器兼容性
使用 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中文网其他相关文章!