在我的情况下,我有开始日期和结束日期
const startDate = 2018-11-07 // YYYY-MM-DD format and it is Wednesday
const endDate = 2018-12-01
我从UI收到一个标志,该事件需要从开始日期到结束日期每周重复一次
如何获取该日期内的活动日期?
预期结果约为["2018-11-07", "2018-11-14", .... ,"2018-11-28"]
答案 0 :(得分:3)
您可以简单地使用官方时刻插件moment-range:
const Moment = require('moment');
const MomentRange = require('moment-range');
const moment = MomentRange.extendMoment(Moment);
const range = moment.range(moment('2018-11-07'), moment('2018-12-01'));
console.log(Array.from(range.by('week')))
输出:
[ moment("2018-11-07T00:00:00.000"),
moment("2018-11-14T00:00:00.000"),
moment("2018-11-21T00:00:00.000"),
moment("2018-11-28T00:00:00.000") ]
答案 1 :(得分:0)
您可以使用moment-range
,如Akrion所述。
但是您可以简单地创建自己的帮助方法。
接受:
const moment = require('moment');
const generateDateRange = (from, to, step = 1, modifier = 'day', format = 'YYYY-MM-DD') => {
const dates = [];
let currentDate = moment(from);
const lastDate = moment(to);
while(currentDate <= lastDate) {
dates.push(currentDate.format(format));
currentDate = currentDate.add(step, modifier);
}
return dates;
}
const dates = generateDateRange('2018-11-07', '2018-12-01', 1, 'week');
console.log(dates);
测试here