如何使用“时刻”获取一年中每个月的一周的开始日期

时间:2018-02-15 10:24:26

标签: javascript momentjs

我在项目中使用了“时刻”。

我试图在给定年份的整个星期开始。

var weeksOfYear = moment("2018").weeks();

但它不起作用。

我想要关注输出。

[1,8,15,22,29,5,12,19,26,5,12,19,26,2,9,16,23,30,7,14,21,28,4, 11,18,25,2,9,16,23,30,6,13,20,27,3,10,17,14,1,8,15,22,29,5,12,19,26, 3,10,17,24];

如果您将上面的数组与日历进行比较,那么您将看到这些是2018年的开始日期。

请告诉我,我怎样才能实现它?

1 个答案:

答案 0 :(得分:2)

这很有效。虽然我确信其他人会有更简洁的答案。

var yearInQuestion = 2018;
var setYear = moment().set('year', yearInQuestion);
var firstMonday = (setYear.startOf('year')).startOf('isoweek');

// NB - Monday of that week might have been in the previous year
if (firstMonday.year() < yearInQuestion) {
    firstMonday.add(7, 'days');
}

var datesArray = [];
while (firstMonday.year() === yearInQuestion) {
    datesArray.push(firstMonday.date());
    firstMonday.add(7, 'days');
} 

console.log(datesArray);