首頁  >  文章  >  web前端  >  為什麼在轉換 UTC 時間字串時 `new Date()` 在 Chrome 和 Firefox 中的表現不同?

為什麼在轉換 UTC 時間字串時 `new Date()` 在 Chrome 和 Firefox 中的表現不同?

Linda Hamilton
Linda Hamilton原創
2024-10-26 02:51:02545瀏覽

Why does `new Date()` behave differently in Chrome and Firefox when converting UTC time strings?

了解Chrome 和Firefox 之間new Date() 行為的差異

使用字串 Date( 將日期轉換為Date 物件時),Chrome 和Firefox 之間出現了細微的差別。這種行為可能會令人困惑,尤其是在使用 UTC 時間字串時。

問題中提供的程式碼 var date = new Date('2013-02-27T17:00:00'); 建立一個日期來自 UTC 格式的日期字串的物件。但是,兩個瀏覽器之間的結果有所不同:

  • Firefox:返回比預期 UTC 時間晚一天的日期。
  • Chrome: 回傳正確的 UTC 時間。

差異的原因

差異源自於日期字串的解釋。 Firefox 將字串解釋為瀏覽器時區中的本地時間,而 Chrome 將其解釋為 UTC。因此,Firefox 將瀏覽器的時區偏移量新增至日期中,導致其顯示時間比 UTC 晚一天。

解決方案

要解決此差異並獲取為了在兩個瀏覽器中獲得正確的 UTC 時間,必須遵守 UTC 日期字符串的正確格式。正確的格式是:

YYYY-MM-DDTHH:mm:ssZ

其中:

  • YYYY-MM-DD 代表年、月、日。
  • HH:mm:ss代表小時、分鐘和秒。
  • Z 代表祖魯時間指示器。

透過將「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn