Код не работает при добавлении 1 дня к дате

#php #arrays

#php #массивы

Вопрос:

У меня есть этот код, который генерирует временные интервалы между $start и $end , с длиной $interval переменной.

 $schedule = [];
$start = strtotime('04/09/2019 09:00');
$end = strtotime('04/09/2019 19:00');
$interval = '30';

while ($start < $end) {

    $next = strtotime(" {$interval} minutes", $start);
    $schedule[] = [
            'startTime' => date('H:i', $start),
            'endTime' => date('H:i', $next)
        ];
    $start = $next;
};

print_r($schedule);
  

Он возвращает следующее:

 Array
(
    [0] => Array
        (
            [startTime] => 09:00
            [endTime] => 09:30
        )

    [1] => Array
        (
            [startTime] => 09:30
            [endTime] => 10:00
        )

    ...

    [18] => Array
        (
            [startTime] => 18:00
            [endTime] => 18:30
        )

    [19] => Array
        (
            [startTime] => 18:30
            [endTime] => 19:00
        )

)
  

Однако, когда я добавляю 1 день к переменным $start and $end , например:

$start = strtotime('04/10/2019 09:00');
$end = strtotime('04/10/2019 19:00');

Он возвращает пустой массив, почему это происходит?

Комментарии:

1. Кто-нибудь может мне помочь?

2. Я вот о чем думаю. Но … появляется пустой. Можете ли вы распечатать $start и $end перед циклом проверить значения. Возможно, распечатайте ваши переменные во время цикла. Здесь что-то не так, но я не думаю, что это ваш код. Я подозреваю, что я не одинок в этой мысли, поскольку здесь еще никто не появился.

3. Я ценю вашу помощь. При печати $ start я получаю 1554793200 и 1554829200 для $ end. Я думаю, это потому, что они являются объектами времени..

4. Работает ли код с обеими датами на вашем конце?

5. Он не возвращает пустой массив. 3v4l.org/LhIKt