【发布时间】:2018-12-03 16:50:52
【问题描述】:
我正在尝试创建一个数组,其中包含两个日期之间的天数。
日期可以是任何日期,但我将使用以下日期:
Start : 11/30/2018, End: 09/30/2019
Array= [30,31,29,30....31]
我想要达到的目标:
我尝试过的:
const start = "11/30/2018";
const end = "09/30/2019";
const dates = [];
const mstart = moment(new Date(start));
const mend = moment(new Date(end));
let i = 0;
while (1 == 1) {
let nextStart = mstart.clone().add(i, 'M');
let nextEnd = mstart.clone().add(i + 1, 'M') > mend ? mend : mstart.clone().add(i + 1, 'M');
dates.push(nextEnd.diff(nextStart, 'days'));
if (nextEnd >= mend) {
break;
}
i += 1
}
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
日期数组的范围从前几列中的30-30 到最后一列中的30-29(闰年除外)。
第一种情况有效。对于第二种情况,我如何将日期范围设置为 30-29 日?我尝试了 .subtract(1, 'days') 但它没有返回正确的结果,因为我希望日期范围也可以工作,而不是每次都减去一天。
感谢任何帮助。谢谢。
【问题讨论】:
-
@ponury-kostek 我正在尝试创建一个包含日期范围之间天数的数组,而不仅仅是获取两个日期之间的总天数。
-
那么你想要一个月的日子吗?还是计算天数?
标签: javascript arrays momentjs