Safari's Date Parsing Macken
Warum gibt Safari einen Fehler „Ungültiges Datum“ aus, wenn Datumsangaben in Formaten wie „29.11.2010“ gefunden werden? ', während andere Browser diese Daten problemlos verarbeiten? Dieses inkonsistente Verhalten kann für Webentwickler frustrierend sein.
Die Ursache des Problems liegt in Safaris Interpretation der Bindestriche (-) in den Datumszeichenfolgen. Während die meisten Browser Bindestriche als Datumstrennzeichen erkennen, behandelt Safari sie fälschlicherweise als Teil des Datums selbst, was zu falschen Datumsberechnungen führt.
Versuchen Sie zur Veranschaulichung die folgenden String-Parsing-Versuche:
alert(new Date('2010-29-11')); // Doesn't work in Safari alert(new Date('29-11-2010')); // Doesn't work in Safari alert(new Date('11-29-2010')); // Doesn't work in Safari
Wie Sie sehen, kann Safari diese Daten unabhängig von der Reihenfolge der Komponenten nicht korrekt analysieren.
Bei Verwendung einer separaten Bibliothek wie Moment.js oder date-fns eine Option zur Linderung dieses Problems sein könnten, gibt es eine einfachere Lösung. Durch einfaches Ersetzen der Bindestriche durch Schrägstriche (/) kann Safari die Datumszeichenfolge korrekt interpretieren:
console.log(new Date('2011-04-12'.replace(/-/g, "/")));
Dieser einzeilige Fix stellt sicher, dass Safari Daten im erwarteten Format analysieren kann, sodass Webanwendungen Daten konsistent über mehrere Browser hinweg anzeigen und bearbeiten können.
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