我date-fns
对它处理“周开始”的方式及其处理方式有疑问。
根据我的日历,2015 年 1 月 1 日的“一周开始”是 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)
如果我将 (2014-12-28) 的结果格式化startOfWeek
为只返回周数,我得到的是“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
当我在 Node.js CLI 上运行上述命令时,我正在设置环境变量。所以它不应该是一个时区问题。