Javascript Formatierung Datum seltsam
-
20-09-2019 - |
Frage
Meine Locale-Einstellungen sind:
Kurzdatumsformat: tt / mm / jjjj, Langes Datumsformat dd MMMM yyyy
Warum also
var d = new Date("8/10/2009")
alert(d.toLocaleDateString());
erbrechen 10. August 2009
oder
var d = new Date("15/10/2009");
erbrechen 10. März 2010
Lösung
Wenn das System aus dem 10. August Datum wird sollte klar sein, auch wenn Sie, warum noch nicht bekommen. Aber es ist nicht so leicht zu verstehen, wie es „10. März 2010“ von „15/10/2009“ bekommt. Also, falls Sie es verpasst haben:
Nehmen wir für einen Moment das Date-Objekt hat bereits entschieden, es mit einem „M / d / y“ Format, so das der erste Teil (15) ist der Monat. Wie wäre es damit umgehen? Was passiert, ist, dass es mit dem Jahr beginnt und baut das Datum „1.1.2009“. Es geht dann bis zum 15. Monat, um Ihnen März 2010 die 10 Tage hinzufügen und los geht.
Für das „Warum“ davon bemerken, dass Sie toLocaleDateString()
zu nennen hatte es in Ihrem speziellen locale-Format Ausgabe zu erhalten. Aber Ihre new Date()
machen keine ähnliche Erwähnung locale überall. So ist unter Verwendung sie es nur die invariant eingebaut in der Kultur.
Andere Tipps
Versuchen Sie stattdessen.
var myDate=new Date();
myDate.setFullYear(2010,0,14);