假设开始日期是 2019-01-10
。我们必须提前 15 个月检查。
所以结束日期是2020-04-10
。
我想获取上面列表中每个月的每10天的列表。
如下:
['2019-01-10' , '2019-02-10' , '2019-03-10' , '2019-04-10' , ...... , '2020-04-10' ]
我怎样才能在 moment,js 中做到这一点? 如果这在 moment.js 中不可能实现,那么我们可以通过哪些方法在 JavaScript 中做到这一点?
最佳答案
在普通 JavaScript 中只需使用 Date.setMonth
。对于 29、30 和 31 等开始日期,结果日期将延续到下个月,因此您必须处理这种情况。
function buildDates(startDate, months) {
return Array.from({
length: months
}, function(_, i) {
var date = new Date(startDate.getTime());
var mnth = date.getMonth();
date.setMonth(mnth + i);
if (date.getMonth() !== (mnth + i) % 12) {
date.setDate(0);
}
return date;
});
}
console.log(buildDates(new Date(2019, 0, 10), 15));
console.log(buildDates(new Date(2019, 0, 31), 15));
关于javascript - 如何使用 moment.js 获取给定范围内每个月的特殊日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073422/