Heim > Web-Frontend > js-Tutorial > Warum ist mein JavaScript-Datumsobjekt einen Tag frei?

Warum ist mein JavaScript-Datumsobjekt einen Tag frei?

Linda Hamilton
Freigeben: 2024-12-10 15:19:12
Original
351 Leute haben es durchsucht

Why Is My JavaScript Date Object One Day Off?

Ist das JavaScript-Datumsobjekt um einen Tag verschoben?

Das JavaScript-Datumsobjekt kann sich bei der Arbeit mit Datumszeichenfolgen eigenartig verhalten, was möglicherweise zu falschen Datumsangaben führt . Dieses Verhalten kann je nach Format der Eingabezeichenfolge und den aktuellen Gebietsschemaeinstellungen des Browsers variieren.

Probleme mit dem Zeichenfolgenformat

Beim Erstellen eines neuen Datumsobjekts aus einer Datumszeichenfolge , kann sich das Format der Zeichenfolge auf das resultierende Datum auswirken. Betrachten Sie beispielsweise die folgende Zeichenfolge:

2011-09-24
Nach dem Login kopieren

Wenn Sie ein Date-Objekt mit dieser Zeichenfolge erstellen, so wie sie ist, kann es ein Datum zurückgeben, das einen Tag später liegt. Wenn Sie jedoch die Bindestriche („-“) in Schrägstriche („/“) ändern, ist das resultierende Datum korrekt.

2011/09/24
Nach dem Login kopieren

Datums-Uhrzeit-Zeichenfolgen

Wenn die Datumszeichenfolge eine Zeitkomponente enthält (z. B. „2011-09-24T00:00:00“), wird der Bindestrich und die Vorwärtsbewegung verwendet Der Slash-Trick funktioniert möglicherweise nicht mehr. In diesem Fall können Sie die Zeitkomponente mithilfe eines regulären Ausdrucks entfernen:

new Date("2011-09-24T00:00:00".replace(/-/g, '/').replace(/T.+/, ''));
Nach dem Login kopieren

Separate Argumente

Eine andere Möglichkeit, ein Date-Objekt zu erstellen, besteht darin, separate Argumente bereitzustellen für Jahr, Monat und Tag (optional mit Stunden, Minuten, Sekunden und Millisekunden). Dieser Ansatz kann nützlich sein, um bestimmte Daten zu berechnen oder mit Daten in einem bestimmten Gebietsschema zu arbeiten.

Zum Beispiel ruft der folgende Code den ersten und letzten Tag des Jahres 2011 ab:

new Date(2011, 0); // First day of 2011
new Date((2011 + 1), 0, 0); // Last day of 2011
Nach dem Login kopieren

Denken Sie daran, dass der Monat in diesem Fall nullbasiert ist, also steht „0“ für Januar.

Wenn Sie diese Besonderheiten verstehen, können Sie falsche Datumsangaben vermeiden und effektiv mit Datumsangaben arbeiten JavaScript.

Das obige ist der detaillierte Inhalt vonWarum ist mein JavaScript-Datumsobjekt einen Tag frei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage