dimastik1986
@dimastik1986
учусь

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

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


Как вывести все дни между ними в формате год-месяц-день?
Спасибо!
  • Вопрос задан
  • 52 просмотра
Решения вопроса 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'));
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Vigrom Москва
До 150 000 руб.
SaveTime Москва
от 100 000 руб.
Teamlead Ставрополь
от 25 000 до 50 000 руб.
13 нояб. 2019, в 17:51
40000 руб./за проект
13 нояб. 2019, в 17:34
1500 руб./за проект
13 нояб. 2019, в 17:27
200 руб./за проект