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


10

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


4
Потому что Си так и struct tmсделал.
Пол Томблин

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

Ответы:


14

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

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

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


8
Нет нет нет!!! Это связано с этим вопросом
cwallenpoole

1

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

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


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.