Когда я пытаюсь добавить месяцы моей даты, он пропускает ноябрь. Я считаю, что это из-за перехода на летнее время в ноябре.
Вот код, который показывает, что он перепрыгнул на один день дальше, чем мне нужно:
var my_date = new Date(1377993599000);
console.log(my_date.toUTCString());
Это выводит «Сб, 31 августа 2013 г., 23:59:59 по Гринвичу».
my_date.setUTCMonth(my_date.getUTCMonth() + 3);
console.log(my_date.toUTCString());
Это выводит «Вс, 01 декабря 2013 г., 23:59:59 по Гринвичу».
И теперь, когда я пытаюсь добавить только 2:
my_date.setUTCMonth(my_date.getUTCMonth() + 2);
console.log(my_date.toUTCString());
Это выводит «Чт, 31 октября 2013 г., 23:59:59 по Гринвичу».
Когда я пытаюсь установить дату на ноль:
my_date.setUTCMonth(my_date.getUTCMonth() + 3, 0);
console.log(my_date.toUTCString());
Это выводит «Чт, 31 октября 2013 г., 23:59:59 по Гринвичу».
Кто-нибудь знает чистый трюк для исправления этого?
Мне лучше отказаться от функций UTC и просто удалить смещение часового пояса из всех времен? Если бы я сделал это, это действительно решило бы мою проблему?