В моем проекте я использую date-fns для манипуляций с датами.Существует необходимость повторять дни в некотором диапазоне.Для этого я использую следующий код:
for (
// from and to are always start of some day, from <= to
let date = from;
isBefore(date, to) || isEqual(date, to);
date = addDays(date, 1)
) {
// Some operations with date
}
Я ожидаю, что date
всегда будет началом какого-то дня, но в случае изменения часового пояса (зимнее время -> летнее время) дата будетНа 1 час меньше, чем ожидалось.Вот пример:
const from = new Date('2019-03-31T00:00:00.000Z')
const fromPlusDay = dateFns.addDays(from, 1)
// I'm getting "2019-03-31T23:00:00.000Z"
// instead of "2019-04-01T00:00:00.000Z"
fromPlusDay.toISOString()
Кстати, мой часовой пояс был +2, а после перехода на летнее время он стал + 3