首頁  >  文章  >  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