momentjs中的周计算不正确

时间:2015-01-21 18:14:03

标签: javascript momentjs week-number

我使用node.js,时刻为2.9.0

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是2014-12-28T00:00:00.000Z

周是1.为什么?

谢谢。

1 个答案:

答案 0 :(得分:4)

答案可以找到in the docs

  

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

     

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

因此,2015年第1周(通过此功能)是:

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

还值得一提的是,该时刻还有isoWeek功能,符合ISO 8601 week numbering system