Я пытаюсь создать массив с количеством дней между двумя датами.
Даты могут быть любыми, но я использую следующее для этого примера.
Start : 11/30/2018, End: 09/30/2019
Array= [30,31,29,30....31]
Что я пытаюсь сделать:
Здесь дата варьируется от 30 to 30
до 30-29.
У меня есть следующий код:
const start = "11/30/2018";
const end = "09/30/2019";
const dates = [];
const mstart = moment(new Date(start));
const mend = moment(new Date(end));
for (let i = 0; mstart < mend ; i++) {
const daysInMonth = mstart.daysInMonth() + (i === 0 ? -1 : -1);
//mstart.daysInMonth() + (i === 0 ? -1 : 0) for the first case.
dates.push(daysInMonth);
mstart.add(1, 'M');
}
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
Проблема:
Диапазон дат работает для других дат, если это не конец месяца.
Мне нужен диапазон дат, чтобы перейти от даты начала до даты окончания.Здесь он вычисляет дату с 30 по 29, но как только он переходит в февраль, он занимает 28-е число этого месяца, а затем начинает диапазон дат оттуда.
Как это исправить?