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?

mahen23
quelle
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

jk.
quelle
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.)


quelle
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.

Tarik
quelle