PHP DateTime выводит массив дат в диапазоне - PullRequest
0 голосов
/ 08 мая 2019

Я рассчитываю дату через 6 месяцев, как это ...

$date = new DateTime('01/02/2019');
$date->add(new DateInterval('P6M'));
echo $date->format('d/m/Y') . "\n";

Насколько я могу судить, это работает, кто-нибудь знает, как заставить его выводить массив дат в этом новом периоде?

Есть ли в DateTime что-нибудь встроенное?

1 Ответ

1 голос
/ 08 мая 2019

Вам нужно перебрать все даты, поскольку для этого нет встроенной функции.

Вы можете создать цикл, который будет добавлять каждую дату к массиву и увеличивать дату, пока она не достигнет конечной даты.

function get_interval($startDate, $endDate) {
    $result = [];
    while ($startDate < $endDate) {
        $currentDate = (clone $startDate);
        $result[] = $currentDate;
        $startDate->modify("+1 day");
    }
    return $result;
}
$date = new DateTime('01/02/2019');
$enddate = (clone $date)->add(new DateInterval('P6M')); // Note that the object is cloned
                                                        // Otherwise we modify the original $date
print_r(get_interval($date, $enddate));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...