warum getMonth () mit 0 beginnt


10

Ich habe eine Funktion codiert, um einen Tag aus einem Datumswert in Javascript zu entfernen, und ich war etwas überrascht, dass getMonth () von javascript von 0 für Januar bis 11 für Dezember startet. Warum beginnt getMonth () von Javascript mit 0?


4
Weil C struct tmes so gemacht hat.
Paul Tomblin

2
OK, lassen Sie mich eine allgemeinere Frage stellen. Warum sollten Sie ein Datumsobjekt schreiben, das 0 indexbasierte Monate, aber keine Tage, Jahre, Stunden, Minuten usw. enthält?
Der Muffin-Mann

Antworten:


14

Vermutlich, um bei der Indizierung in Arrays zu helfen.

Stellen Sie sich vor, Sie haben Ihre Monatsanzeigezeichenfolgen in einem Array gespeichert und möchten mit getMonth () die richtige Zeichenfolge abrufen.

Natürlich ist es eine andere Frage , warum Arrays bei Null beginnen


8
Nein nein Nein!!! Es hat mit dieser Frage
cwallenpoole

1

Höchstwahrscheinlich, weil der Aufruf der C-Bibliothek, der aufgerufen wird, um den Wert zurückzugeben, Monate auf diese Weise zurückgibt.

(Und der Grund für dieses Design war höchstwahrscheinlich, dass der Bibliotheksaufruf zusammen mit dem Programm entworfen wurde, um das Datum tatsächlich zu drucken, wobei ein auf Null basierender Index direkt zum Drucken der Monatsnamen verwendet werden konnte.)


1

Wenn ein Element in einer Struktur mit 0 beginnt, sollten alle Elemente auch damit beginnen oder keines von ihnen. Ich habe dieses Verhalten auf meiner Website etwas spät entdeckt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.