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