Мне нужно получить диапазон часов между двумя заданными часами с шагом 15 минут, поэтому я получаю следующее:
"book_time_range": [
"13:00-13:15",
"13:15-13:30",
"13:30-13:45",
"13:45-14:00",
"14:00-14:15",
"14:15-14:30",
"14:30-14:45",
"14:45-15:00",
"15:00-15:15",
"15:15-15:30"
],
Это все, что я получил:
public function hours_range_between_start_and_end(
$start = '13:00',
$end = '15:30',
$step = 900,
$format = 'H:i'
) {
$times_ranges = [];
$start = strtotime($start) - strtotime('TODAY');
$end = strtotime($end) - strtotime('TODAY');
foreach (range($start, $end, $step) as $increment)
{
$increment = gmdate('H:i', $increment);
list($hour, $minutes) = explode(':', $increment);
$date = new DateTime($hour . ':' . $minutes);
$times_ranges[] = $date->format($format);
}
return $times_ranges;
}
Что дает мне:
"book_time_range": [
"13:00",
"13:15",
"13:30",
"13:45",
"14:00",
"14:15",
"14:30",
"14:45",
"15:00",
"15:15",
"15:30"
],
Это технически правильно, но я зацикливаюсь на том, как работать с этим массивом, чтобы получить тот, который мне нужен.
Есть какие-нибудь советы? Может, я изначально неправильно подхожу к этому?