我有2个日期:开始和结束。 我需要创建一个日期数组,并每3个月在这2个日期之间添加天数。
开始= 2018/8/19 结束= 11/19/2018
Array = [92,92,89,92,92]
这是我尝试过的:
const start = "8/19/2018";
const end = "11/19/2018 ";
const dates = [];
const mstart = moment(new Date(start));
const mend = moment(new Date(end));
for (let i = 0; mstart < mend ; i++) {
var Q = mstart.add(3, 'months').format( 'YYYY-MM-DD');
const daysInMonth = startLease.diff(Q, 'days');
dates.push(daysInMonth);
}
但是,它返回的数组为0。
感谢您的帮助。谢谢。
答案 0 :(得分:0)
我们可以这样做。
const start = "8/19/2018";
const end = "11/19/2018 ";
const s = new Date(start)
const e = new Date(end)
const daysDifference = (e.getTime()-s.getTime())/1000/60/60/24 //finding diffeernce in milliseconds and then converting it to days
console.log(daysDifference) // required ans
答案 1 :(得分:0)
首先,我从您的屏幕快照中假设您的意思是11/19/2019,而不是2018。我还假设您的代码中startLease
是mstart
?
基于这些假设,我相信您所缺少的是时刻操纵函数会改变原始时刻,因此说var Q = mstart.add(3, 'months')
还会为mstart
增加3个月,因此当您比较它们时,您不会因为它们是相同的日期,所以t获得期望值。相反,您将需要克隆mstart,如下所示:
const start = "8/19/2018";
const end = "11/19/2019 ";
const dates = [];
const mstart = moment(start, "MM/DD/YYYY");
const mend = moment(end, "MM/DD/YYYY");
while (mstart < mend) {
let Q = mstart.clone();
mstart.add(3, 'months');
const daysInMonth = mstart.diff(Q, 'days');
dates.push(daysInMonth);
}
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>