首頁  >  文章  >  web前端  >  為什麼 IE 日期建構函式與 Chrome 和 Firefox 日期處理不同?

為什麼 IE 日期建構函式與 Chrome 和 Firefox 日期處理不同?

Linda Hamilton
Linda Hamilton原創
2024-10-20 13:35:30644瀏覽

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

IE 日期構造函數問題:NaN 與其他瀏覽器中的功能

在涉及JavaScript 日曆開發的項目中,日期處理中出現了差異Internet Explorer (IE) 以及Firefox 和Chrome 等瀏覽器。具體來說,IE 的日期函數產生 NaN(非數字)值,而它們在其他瀏覽器中正常運作。

經過調查,很明顯根本原因與所使用的日期格式有關。相關函數 buildWeek() 旨在根據以「m, d, Y」格式提供的星期一日期(例如「02, 01, 2010」)產生日曆週的標題日期。然而,在 IE 中,這種格式無法被正確識別,從而導致 NaN 問題。

為了解決這個差異,採用了不同的方法。日期字串不依賴給定的格式,而是使用 split(" ") 將其拆分為各個組成部分(日期和時間)。隨後,使用split("-") 將日期組件進一步拆分為其組成部分(年、月、日),並使用split(":") 將時間組件進一步拆分為其組成部分(小時、分鐘、秒) .

然後使用這些解析值建構了Date 的實例。事實證明,該方法相容於所有瀏覽器,確保了 IE、Firefox 和 Chrome 的日期處理一致。

var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field
var a = dateStr.split(" ");
var d = a[0].split("-");
var t = a[1].split(":");
var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

透過採用此方法,成功消除了 IE 中的 NaN 錯誤,實現了跨瀏覽器的一致日期處理。不同的瀏覽器。

以上是為什麼 IE 日期建構函式與 Chrome 和 Firefox 日期處理不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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