#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