почему getMonth () начинается с 0

10

Я кодировал функцию для удаления дня из значения даты в javascript, и я был немного удивлен, что getMonth () javascript начинается с 0 для января до 11 для декабря. Почему javascript getMonth () начинается с 0?

mahen23
источник
4
Потому что Си так и struct tmсделал.
Пол Томблин
2
Хорошо, позвольте мне задать более общий вопрос. Зачем вам писать объект даты, который имеет 0 индексов на основе месяцев, а не дней, лет, часов, минут и т. Д.?
Человек

Ответы:

14

по-видимому, чтобы помочь с индексацией массивов.

Представьте, что ваши строки отображения месяца хранятся в массиве и вы хотите получить правильную строку с помощью getMonth ()

конечно, почему массивы начинаются с нуля - это другой вопрос

JK.
источник
8
Нет нет нет!!! Это связано с этим вопросом
cwallenpoole
1

Скорее всего, потому что вызов библиотеки C, вызванный для получения возвращаемого значения, возвращает месяцы таким образом.

(И причина этого дизайна была, скорее всего, потому, что библиотечный вызов был разработан вместе с программой для фактической печати даты, где нулевой индекс мог бы использоваться непосредственно для печати названий месяцев)


источник
1

Если один элемент в структуре начинается с 0, то все элементы также должны начинаться с него или ни одного из них. Я обнаружил, что поведение на моем сайте немного поздно.

Тарик
источник