Problem mit dem IE-Datumskonstruktor: NaN vs. Funktionalität in anderen Browsern
In einem Projekt zur Entwicklung von JavaScript-Kalendern traten Diskrepanzen bei der Datumsverarbeitung auf Internet Explorer (IE) und Browser wie Firefox und Chrome. Insbesondere führten die Datumsfunktionen des IE zu NaN-Werten (Not a Number), während sie in den anderen Browsern ordnungsgemäß funktionierten.
Bei der Untersuchung wurde klar, dass die Ursache mit dem verwendeten Datumsformat zusammenhängt. Die fragliche Funktion, buildWeek(), sollte Header-Daten für eine Kalenderwoche basierend auf einem Montagsdatum im Format „m, d, y“ generieren, zum Beispiel „02, 01, 2010“. Allerdings wurde dieses Format im IE nicht richtig erkannt, was zum NaN-Problem führte.
Um diese Diskrepanz zu beheben, wurde ein anderer Ansatz gewählt. Anstatt sich auf das vorgegebene Format zu verlassen, wurde die Datumszeichenfolge mithilfe von split(" ") in ihre Komponenten (Datum und Uhrzeit) aufgeteilt. Anschließend wurde die Datumskomponente mit split("-") weiter in ihre Bestandteile (Jahr, Monat, Tag) zerlegt und die Zeitkomponente mit split(::) in ihre Bestandteile (Stunden, Minuten, Sekunden) zerlegt. .
Eine Instanz von Date wurde dann mit diesen analysierten Werten erstellt. Diese Methode erwies sich als mit allen Browsern kompatibel und gewährleistete eine konsistente Datumsverarbeitung in IE, Firefox und 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]);
Indem Sie dies übernehmen Mit diesem Ansatz wurden die NaN-Fehler im IE erfolgreich beseitigt und eine konsistente Datumsverarbeitung über verschiedene Browser hinweg erreicht.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3