Es gibt einige verrückte Dinge, die mit einem JS DATE- Objekt passieren , das Zeichenfolgen konvertiert, z. B. das folgende von Ihnen angegebene Datum
Hinweis: Die folgenden Beispiele können abhängig von IHRER Zeitzone und der aktuellen Zeit EINEN TAG AUS sein oder nicht .
new Date("2011-09-24"); // Year-Month-Day
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF.
Wenn wir jedoch das Zeichenfolgenformat auf Monat-Tag-Jahr umstellen ...
new Date("09-24-2011");
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Noch eine seltsame
new Date("2011-09-24");
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF AS BEFORE.
new Date("2011/09/24"); // change from "-" to "/".
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Wir könnten leicht Bindestriche in Ihrem Datum "2011-09-24" ändern, wenn Sie ein neues Datum festlegen
new Date("2011-09-24".replace(/-/g, '\/')); // => "2011/09/24".
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Was wäre, wenn wir eine Datumszeichenfolge wie "2011-09-24T00: 00: 00" hätten?
new Date("2011-09-24T00:00:00");
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF.
Ändern Sie nun den Bindestrich wie zuvor in Schrägstrich . was geschieht?
new Date("2011/09/24T00:00:00");
// => Invalid Date
Normalerweise muss ich das Datumsformat 2011-09-24T00: 00: 00 verwalten, damit ich dies tue.
new Date("2011-09-24T00:00:00".replace(/-/g, '\/').replace(/T.+/, ''));
// => Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
AKTUALISIEREN
Wenn Sie dem Date-Konstruktor separate Argumente bereitstellen, können Sie andere nützliche Ausgaben erhalten, wie unten beschrieben
Hinweis: Argumente können vom Typ Number oder String sein. Ich werde Beispiele mit gemischten Werten zeigen.
Holen Sie sich den ersten Monat und Tag eines bestimmten Jahres
new Date(2011, 0); // Normal behavior as months in this case are zero based.
=> // Sat Jan 01 2011 00:00:00 GMT-0700 (MST)
Holen Sie sich den letzten Monat und Tag eines Jahres
new Date((2011 + 1), 0, 0); // The second zero roles back one day into the previous month's last day.
=> // Sat Dec 31 2011 00:00:00 GMT-0700 (MST)
Beispiel für Zahlen- und Zeichenfolgenargumente. Beachten Sie, dass der Monat März ist, da die Monate wieder auf Null basieren.
new Date(2011, "02");
=> // Tue Mar 01 2011 00:00:00 GMT-0700 (MST)
Wenn wir dasselbe tun, aber mit einem Tag von Null, bekommen wir etwas anderes.
new Date(2011, "02", 0); // again the zero roles back from March to the last day of February.
=> // Mon Feb 28 2011 00:00:00 GMT-0700 (MST)
Wenn Sie einem Argument für Jahr und Monat einen Tag von Null hinzufügen, wird der letzte Tag des Vormonats angezeigt. Wenn Sie mit negativen Zahlen fortfahren, können Sie einen weiteren Tag zurücksetzen
new Date(2011, "02", -1);
=> // Sun Feb 27 2011 00:00:00 GMT-0700 (MST)