Я пытаюсь создать массив с количеством дней между двумя датами.
Даты могут быть любыми, но я буду использовать следующее:
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'), но он не возвращает правильный результат, потому что я хочу, чтобы диапазон дат тоже работал, вместо того, чтобы просто вычитать день каждый раз.
Любая помощь приветствуется.Спасибо.