我正在尝试获取以下日期范围。在这里,我查看结束日期并确定下一个日期范围,使其从2018年12月20日到2018年1月5日,依此类推。
另一个例子:在这里,由于2月有28天,所以它将持续到28天,然后再到30天。
这是我的代码:
const start = "12/7/2018";
const end = "5/20/2019";
var startLease = moment(start, "MM/DD/YYYY");
var endLease = moment(end, "MM/DD/YYYY");
var array = [];
var i = 0;
var nextEnd;
while (1 == 1) {
var nextStart = nextEnd ? (nextEnd.date() > 28 ? nextEnd : nextEnd) : nextEnd || startLease.clone().add(i, 'M');
console.log(nextStart);
nextEnd = startLease.clone().add(i + 1, 'M') > endLease ? endLease : startLease.clone().add(i + 1, 'M');
if (nextEnd.date() > 28) {
nextEnd.subtract(1, 'days')
} else {}
if (nextEnd >= endLease) {
break;
} else {}
i += 1
}
console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
我的日期逻辑不适用于我的第一个示例。但是,当我更改日期时,它适用于月底。我该如何解决?感谢您的帮助。谢谢。