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 錯誤,實現了不同瀏覽器之間日期處理的一致性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3