Согласно вашему комментарию
Например, если я выберу дату начала 31 марта, а время 19:00, то я хочу получить все слоты после этого времени, например 19: 00,19: 15, ... До даты окончания
Я хотел бы go для этого кода здесь:
$start = new \DateTime('2020-03-31 19:00');
$end = new \DateTime('2020-03-31 21:30');
$slotSize = 15; // 15 minute intervals
$slots = [];
do {
// Add here your custom code to skip specific timeslots
// As an example I used a custom function as an example
if (slot_is_blocked_by_existing_bookings($slot, $bookings)) {
continue;
}
$slots[] = clone $start;
} while ($start->add(new \DateInterval("PT{$slotSize}M")) <= $end);
и вот пример вывода списка $slots
, который содержит DateTime-objets (строка, отформатированная в RFC3339 для удобства чтения)
array:11 [
0 => "2020-03-31T19:00:00+00:00"
1 => "2020-03-31T19:15:00+00:00"
2 => "2020-03-31T19:30:00+00:00"
3 => "2020-03-31T19:45:00+00:00"
4 => "2020-03-31T20:00:00+00:00"
5 => "2020-03-31T20:15:00+00:00"
6 => "2020-03-31T20:30:00+00:00"
7 => "2020-03-31T20:45:00+00:00"
8 => "2020-03-31T21:00:00+00:00"
9 => "2020-03-31T21:15:00+00:00"
10 => "2020-03-31T21:30:00+00:00"
]