Heim  >  Artikel  >  Web-Frontend  >  Warum unterscheidet sich der IE-Datumskonstruktor von der Datumsverarbeitung in Chrome und Firefox?

Warum unterscheidet sich der IE-Datumskonstruktor von der Datumsverarbeitung in Chrome und Firefox?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 13:35:30724Durchsuche

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

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 im verwendeten Datumsformat lag. 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“. Im IE wurde dieses Format jedoch nicht richtig erkannt, was zum NaN-Problem führte.

Um diese Diskrepanz zu beheben, wurde ein anderer Ansatz gewählt. Anstatt sich auf das angegebene 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. .

Mit diesen analysierten Werten wurde dann eine Instanz von Date 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]);

Durch die Übernahme dieses Ansatzes wurden die NaN-Fehler im IE erfolgreich beseitigt und eine konsistente Datumsverarbeitung in allen Bereichen erreicht verschiedene Browser.

Das obige ist der detaillierte Inhalt vonWarum unterscheidet sich der IE-Datumskonstruktor von der Datumsverarbeitung in Chrome und Firefox?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn