Javascript momentjs中的周计算不正确

Javascript momentjs中的周计算不正确,javascript,momentjs,week-number,Javascript,Momentjs,Week Number,我在Moment2.9.0中使用node.js var moment = require("moment"); var d = moment.utc([2014, 11, 27]); var iso = d.toISOString(); var week = d.week(); 显示iso=“2014-12-27T00:00:00.000Z” 一周是52 但如果var d=moment.utc([2014,11,28]) iso is 2014-12-28:00:00.000Z 星期一。为什么

我在Moment2.9.0中使用node.js

var moment = require("moment");
var d = moment.utc([2014, 11, 27]);
var iso = d.toISOString();
var week = d.week();
显示iso=“2014-12-27T00:00:00.000Z” 一周是52

但如果
var d=moment.utc([2014,11,28])

iso is 2014-12-28:00:00.000Z

星期一。为什么?

谢谢。

答案如下:

一年中的一周取决于哪一天是一年中的第一天 一周(星期日、星期一等),以及哪一周是一年中的第一周

例如,在美国,星期天是一周的第一天。 一月一日是一年中的第一周

因此,2015年第1周(通过该函数)是:

  • 2014-12-28(星期日)
  • 2014-12-29(星期一)
  • 2014-12-30(星期二)
  • 2014-12-31(星期三)
  • 2015-01-01(星期四)
  • 2015-01-02(星期五)
  • 2015-01-03(星期六)

还值得一提的是,矩也有函数,它符合。

var d=moment.utc([2014,11,28]).isoWeek();->52和var d=矩.utc([2014,11,29]).isoWeek();->1等周工作也不正常?它们都正常工作。ISO周从周一开始,如本手册第三段所述。我想也许你只是对一年的第一周实际上可以在前一年开始这一事实感到困惑。嗨,马特约翰逊!我想从星期四开始,因为我的项目要求。从星期四开始的一周有什么办法吗?那么第1周的第一个日期可以是2017-01-05?@user2899728是的,请参阅有关自定义区域设置dow/doy的即时文档。