У меня проблема с date-fns
и тем, как он обрабатывает "начало недель".
«Начало недели» 2015-01-01, согласно моему календарю, было 2014-12-29.
Но, date-fns#startOfWeek
говорит мне иначе:
❯❯❯ dateFns.startOfWeek(new Date('2015-01-01'))
Sun Dec 28 2014 00:00:00 GMT+0100 (Central European Standard Time)
Если я отформатирую результат startOfWeek
(2014-12-28), чтобы просто вернуть номер недели, я получу «52» (что не соответствует результату, предоставленному dateFns#startOfWeek
):
❯❯❯ dateFns.format(new Date('2014-12-28'), 'W')
"52"
Но если я отформатирую исходную дату (2015-01-01), она вернет «1»:
❯❯❯ dateFns.format(new Date('2015-01-01'), 'W')
"1"
Почему это расхождение? Как правильно получить правильную дату и номер недели в начале недели?
Обратите внимание, я устанавливаю TZ=Etc/UTC
в моих переменных окружения, когда запускаю вышеупомянутые команды в моем CLI Node.js. Так что это не должно быть проблемой с часовым поясом.