CoolHeart
@CoolHeart
Junior FrontEnd developer

Как получить даты с интервалом в месяц от заданной?

Есть два параметра: дата отсчета (08.04.2022) и количество месяцев/повторений цикла (120). Нужно получить соответствующий массив дат.

let countMonth = 120,
currDate = '08.04.2022',
str;

for (var i = 1; i <= countMonth; i++) {
 str += currDate; // вот тут и проблема как получить +1 месяц каждый цикл, при кратности 12 ( if (i % 12 == 0) ) +1 год и месяц снова на 1 поставить и так 120 раз...
}
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
function getDates(startStr, count) {
  const dates = [];
  const date = new Date(startStr.split('.').reverse().join('-'));
  const day = date.getDate();
  date.setDate(0);

  while (dates.length < count) {
    date.setMonth(date.getMonth() + 2, 0);
    date.setDate(Math.min(date.getDate(), day));

    dates.push(date.toLocaleDateString('ru-RU', {
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
    }));
  }

  return dates;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы