dimastik1986
@dimastik1986
учусь

Как вывести дни между датами?

Есть две даты
[start_dt] => 2019-02-05
[stop_dt] => 2019-02-28


Как вывести все дни между ними в формате год-месяц-день?
Спасибо!
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
abyrvalg
@abyrvalg
/**
     * @param \DateTimeImmutable $dateFrom
     * @param \DateTimeImmutable $dateTo
     *
     * @return \DateTimeImmutable[]
     * @throws \Exception
     */
    function daysRange(\DateTimeImmutable $dateFrom, \DateTimeImmutable $dateTo) : iterable
    {
        $iter = clone $dateFrom;
        while ($iter <= $dateTo) {
            yield $iter;
            $iter = $iter->add(new \DateInterval('P1D'));
        }
    }

    $days = daysRange(
        new \DateTimeImmutable('2020-01-25'), 
        new \DateTimeImmutable('2020-03-01')
    );
    foreach ($days as $day) {
        echo sprintf("%s\n", $day->format('Y-m-d'));
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега PHP
Стандартная функция: php.net/manual/ru/datetime.diff.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы