Логика диапазона дат в момент - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь получить следующий диапазон дат.Здесь я просматриваю дату окончания и определяю следующий диапазон дат, чтобы он проходил с 20/12/2018 по 1/5/2018 и т. Д.

enter image description here

Другой пример: здесь, поскольку в феврале 28 дней, он пойдет до 28, а затем до 30 снова после этого.

enter image description here

Вот мой код:

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>

Моя логика дат не работает для моего первого примера.Тем не менее, это работает на конец месяца, когда я меняю свои даты.Как это исправить?Любая помощь приветствуется.Спасибо.

...