Javascript 使用moment.js生成自2017年至今的周数数组

Javascript 使用moment.js生成自2017年至今的周数数组,javascript,momentjs,Javascript,Momentjs,我需要列出2017年至今的周数组。我的一周从周一开始,到周日结束,我试图在moment.js中完成 const startDate = moment().isoWeekday('Monday').format('DD-MM-YYYY'); const endDate = moment().isoWeekday('Sunday').format('DD-MM-YYYY'); 我试着用这个来获得一周的开始日期和结束日期,但我不知道下一步的流程 注意我的数组列表以[“02-01-2017”,“08-

我需要列出2017年至今的周数组。我的一周从周一开始,到周日结束,我试图在moment.js中完成

const startDate = moment().isoWeekday('Monday').format('DD-MM-YYYY');
const endDate = moment().isoWeekday('Sunday').format('DD-MM-YYYY');
我试着用这个来获得一周的开始日期和结束日期,但我不知道下一步的流程

注意我的数组列表以
[“02-01-2017”,“08-01-2017”]
开始,以本周结束将是最后一个数组

const result = [["02-01-2017", "08-01-2017"],...... ["05-01-2018", "11-01-2018"]]

您可以将开始日期初始化为2017年1月1日的第一个工作日,并迭代到今天以下的所有日期,并继续在数组中添加天数

var周=[];
var startDate=时刻(新日期(2017,0,1))。等工作日(8);
如果(startDate.date()=8){
startDate=startDate.isoWeekday(-6)
}
var today=moment().isoWeekday('Sunday');
while(startDate.isBefore(今天)){
设startDateWeek=startDate.isoWeekday('Monday')。格式('DD-MM-YYYY');
设endDateWeek=startDate.isoWeekday('Sunday')。格式('DD-MM-YYYY');
加上(7,'天');
周。推送([startDateWeek,endDateWeek]);
}
console.log(周)

类似的东西会有帮助吗

let startDate = moment('2017-01-01').startOf('week').format('YYYY-MM-DD');
let endDate = moment(new Date()).startOf('week').format('YYYY-MM-DD');

const weeks = [];
while (startDate <= endDate) {
  weeks.push(startDate);
  startDate = moment(startDate).add(7, 'days').format('YYYY-MM-DD');
}

console.log('weeks:', weeks);
让startDate=时刻('2017-01-01')。startOf('week')。格式('YYYY-MM-DD');
让endDate=moment(new Date()).startOf('week').format('yyyyy-MM-DD');
常数周=[];

而(起始日期[“2017年1月2日”,“2017年1月8日”]这是您输入的吗?@rijin谢谢回复否这不是我的输入,我需要获取从2017年到本周的开始日期和结束日期,我向您展示了2017年的开始日期数组,因此,输入为2017年,周一=>返回从2017年到今天的所有周一?@rijin我的一周从
周一开始,以
周日结束。我需要本周的所有开始日期和结束日期,直到本周,这将是我的结果
const result={[“02-01-2017”,“08-01-2017”]…[“05-01-2018”,“11-01-2018”]}
这对我来说很好,但我现在需要到本周为止,我只需要到上一周的开始日期和结束日期才能显示到本周?更新的解决方案。