Ich suche eine Bestätigung, falls es sich um einen echten Dokumentations- und / oder Implementierungsfehler bei Javascripts Date.parse-Methode handelt.
Die Dokumente, auf die ich mich beziehe, sind Ссылка und sie sagen "If Wenn Sie keine Zeitzone angeben, wird die lokale Zeitzone angenommen. '
Aber der folgende Code zeigt, dass, obwohl keine Zeitzone angegeben ist, die lokale Zeit nicht angenommen wird (sondern vielmehr, dass mein Zeitzonen-Offset angewendet wird), wenn die an Date.parse übergebene Zeichenfolge beginnt mit der 4-stelligen Jahresdarstellung und ist durchgestrichen.
%Vor%Es kann sogar andere Fälle geben, und ich bin mir sicher, dass ich nicht der Erste bin, der das entdeckt, wenn ich falsch liege. Ich bin sicher, dass es jenseits der Bestätigung auf detailliertere Informationen zu diesem Thema aufmerksam gemacht werden kann, wenn jemand entsprechende Links kennt.
Ich erlebe das in FF3, Chrome für Windows und natürlich nur, um etwas Besonderes zu sein. IE8 scheint überhaupt nicht in der Lage zu sein, die Konvertierung am 2011-10-04 durchzuführen: Ich bekomme nur einen leeren String rein meine Bewerbung
Vielen Dank im Voraus für weitere Einblicke oder Ressourcen.
* Update: * Anscheinend gibt es hier verschiedene Standards:
Das EMCAScript & lt; 5 Standard für Daten im Standard-IETF-Format , z. %Code%. Bei diesen Daten wird die lokale Zeitzone angenommen.
In ECMAScript 5 ist auch eine eingeschränkte Version des ISO 8601-Standards zulässig, z. %Code%. Die Spezifikation scheint zu sagen (vielleicht nach ISO 8601?), Dass in diesem Fall die UTC-Zeitzone angenommen wird, wenn keine angegeben ist.
Ich habe keine Spezifikation gefunden, die besagt, dass Sun Oct 03 2010
mit 2010-10-03
dates umgehen kann, aber mein Browser (Chrome 14) kann dies eindeutig und wahrscheinlich auch andere Browser. Dies scheint Standard 1 oben zu folgen, unter der Annahme der lokalen Zeitzone. Da es jedoch nicht in der Spezifikation enthalten ist, empfehle ich diese Version nicht zu verwenden , da es wahrscheinlich Browser-abhängig ist (und ich habe keine Ahnung, ob Date.parse
zu einem anderen Datum führen würde, wenn Ich hatte ein europäisches Gebietsschema in meinem Browser eingestellt).
Bei den meisten Interpretern gibt es ein paar Probleme mit der nativen Funktion mm/dd/yyyy
- ich hatte oft Zeitzonenprobleme wie die, die Sie beschreiben. Also verwende ich im Allgemeinen entweder eine Bibliothek wie Datejs oder schreibe meine eigenen Parsing-Funktionen. Das DateTime-Modul der SIMILE AJAX-Bibliothek ist ziemlich gut Beispielfunktion zum Analysieren von ISO-8601-Daten (was Sie als 10-03-2010
und eine optionale Zeitkomponente bezeichnen).
Wenn ich Daten festlege, verwende ich normalerweise Date.parse
und dann die euroStyleDate
-Funktionen, um die verschiedenen Datumselemente auf meine gewünschte Genauigkeit einzustellen. Es ist nicht perfekt, aber zumindest hast du es mit einer klaren Zeitzone zu tun.
Ich bin auch auf dieses Konzept gestoßen. Für jeden, der "Javascript-Dates Striche Schrägstriche" googelt, wie ich war, ist dies die klarste Demonstration, die mir einfällt, was hier vor sich geht.
Kurz gesagt, Schrägstriche bedeutet lokale Zeitzone und Striche bedeutet UTC. Andere Antworten haben Erklärungen, warum.
%Vor%Tags und Links javascript date