Heim > Web-Frontend > js-Tutorial > Warum gibt der Datumskonstruktor von JavaScript den Oktober zurück, wenn ich 9 für den Monat angebe?

Warum gibt der Datumskonstruktor von JavaScript den Oktober zurück, wenn ich 9 für den Monat angebe?

Patricia Arquette
Freigeben: 2024-10-30 17:22:03
Original
895 Leute haben es durchsucht

Why Does JavaScript's Date Constructor Return October When I Provide 9 for the Month?

Navigieren durch Monatsdiskrepanzen im Datumskonstruktor von JavaScript

Bei der Arbeit mit Datumsangaben in JavaScript ist es wichtig, die Besonderheiten der Indizierung von Monaten zu verstehen. Eine aktuelle Abfrage zu Mozilla Firefox Firebug gab Anlass zur Sorge:

var myDate = new Date(2012, 9, 23, 0, 0, 0, 0);
console.log(myDate);
Nach dem Login kopieren

Ausgabe:

Date {Tue Oct 23 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}
Nach dem Login kopieren

Als der Benutzer sich mit der Diskrepanz befasste, beobachtete er ein unerwartetes Ergebnis: JavaScript gab stattdessen ein Datum im Oktober zurück September, wie beabsichtigt.

Enthüllung der Wahrheit: Nullbasierte Indizierung

Der Schlüssel liegt in der nullbasierten Indizierung, die der Date-Konstruktor von JavaScript seit Monaten verwendet. In diesem Indexierungsschema beginnen die Monate mit 0 für Januar und 11 für Dezember. Daher entspricht der im Konstruktor (9) übergebene Monatsindex tatsächlich Oktober und nicht September.

Klarstellung mit Referenzen:

Das Mozilla Developer Network (MDN) bietet explizite Anleitung:

month: Integer value representing the month, beginning with 0 for January to 11 for December.
Nach dem Login kopieren

Zusätzlich bietet die ECMAScript-Sprachspezifikation einen technischen Einblick:

7. Let mn be ?(ℝ(m) modulo 12).
Nach dem Login kopieren

Diese Zeile verdeutlicht, dass die Monatseingabe einer Modulo-Operation mit 12 unterzogen wird, wodurch der Monatsindex effektiv im Bereich von 0 liegt bis 11.

Daher ist es beim Erstellen eines Datums in JavaScript wichtig, daran zu denken, dass Monate nullindiziert sind, um Verwirrung oder unerwartete Ergebnisse zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum gibt der Datumskonstruktor von JavaScript den Oktober zurück, wenn ich 9 für den Monat angebe?. 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