perché getMonth () inizia con 0


10

Stavo codificando una funzione per rimuovere un giorno da un valore di data in javascript e sono stato un po 'sorpreso che getMonth () di javascript inizi da 0 per gennaio all'11 per dicembre. Perché getMonth () di javascript inizia con 0?


4
Perché C ha struct tmfatto così.
Paul Tomblin,

2
OK, lasciami fare una domanda più generale. Perché dovresti scrivere un oggetto data che ha 0 mesi basati sull'indice ma non giorni, anni, ore, minuti ecc?
The Muffin Man,

Risposte:


14

a indovinare, per aiutare con l'indicizzazione in array.

Immagina di avere le stringhe di visualizzazione del tuo mese memorizzate in un array e desideri ottenere la stringa corretta utilizzando getMonth ()

naturalmente, perché le matrici iniziano da zero è un'altra domanda


8
No no no !!! Ha a che fare con questa domanda
cwallenpoole,

1

Molto probabilmente perché la chiamata alla libreria C richiamata per ottenere il valore da restituire, restituisce mesi in questo modo.

(E la ragione di quel disegno era molto probabilmente perché la chiamata in biblioteca era stata progettata insieme al programma per stampare effettivamente la data, dove un indice in base zero poteva essere usato direttamente per stampare i nomi dei mesi)


1

Se un elemento in una struttura inizia con 0, allora anche tutti gli elementi dovrebbero iniziare con esso o nessuno di essi. Ho scoperto quel comportamento sul mio sito un po 'in ritardo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.