【发布时间】:2019-08-10 00:07:50
【问题描述】:
我对@987654321@ 及其处理“周开始”的方式有疑问。
根据我的日历,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)
如果我将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"
为什么会出现这种差异?获得正确的“一周开始”日期和周数的正确方法是什么?
注意,当我在 Node.js CLI 上运行上述命令时,我在环境变量中设置了 TZ=Etc/UTC。所以应该不是时区问题。
【问题讨论】:
-
我个人觉得
moment.js对开发者更友好 -
@carkod 我正在从 Moment.js 迁移到 date-fns,我需要减小包的大小。
-
一周的第一天是行政事务。有的地方是星期天,有的地方是星期一,有的地方是星期六。可能还有其他人。
标签: javascript date date-fns