@Verbidabli

Почему после установки setDate(1) getDate() возвращает 2?

Разбираюсь с объектом Date в JavaScript пытаясь сделать простенький календарь. Известно что при установке даты можно использовать значения превышающие или меньше диапазона и они трансформируются в соседние значения даты. В общем, выполняю такие манипуляции в консоли:

var date = new Date();
date.setMonth(1) //  -> 1518052227803
date.setDate(-2)  //  -> 1517188227803
date.getDate() // -> 29
date.getMonth() // -> 0
date.setMonth(1) // -> 1519865649170
date.getMonth() // -> 2


Устанавливаем февраль, а на деле получаем март. Почему так происходит?

Попробовал тоже самое только другой месяц.

var date = new Date();
date.setMonth(4) //  -> 1525742238464
date.setDate(-2)  //  -> 1524878238464
date.getDate() // -> 28
date.getMonth() // -> 0
date.setMonth(4) // -> 1527470238464
date.getMonth() // -> 4


У меня щас 4 часа утра. Либо меня глючит, либо я чего-то не понимаю.
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы