Динамический таймслот проверки бронирования из базы данных php - PullRequest
0 голосов
/ 17 декабря 2018

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

    $start = new DateTime($stTime);
    $end = new DateTime($enTime);
    $interval = new DateInterval("PT" . $duration. "M");
    $breakInterval = new DateInterval("PT" . $break. "M");
    for ($intStart = $start; 
         $intStart < $end; 
         $intStart->add($interval)->add($breakInterval)) {

           $endPeriod = clone $intStart;
           $endPeriod->add($interval);
           if ($endPeriod > $end) {
             $endPeriod=$end;
           }
           $starttime =  $intStart->format('h:iA');
           $endtime = $endPeriod->format('h:iA');
           $timeslot = $starttime.' - '.$endtime;
       }

Теперь он успешно работает, генерируя временные интервалы, подобные этому, где продолжительность и время перерыва равны 15 минутам: 09: 00:00 - 09:15 AM
09:30 - 09:45 AM
10:00 - 10:15 AM
10:30 - 10:45
11:00 - 11:15
11: 30:00 - 11:45 AM
12:00 - 12:15 Когда кто-то сделал бронирование, дата, время начала и время окончания будут сохранены в базе данных.и я могу проверить, что уже есть бронирование, используя этот запрос:

select * from bookings where starttime='$start' AND endtime='$end' AND bookingdate='$date'

Теперь проблема в том, что продолжительность является динамической.Когда я изменяю продолжительность на 30 минут. Новые временные интервалы будут сгенерированы следующим образом: 09:00 - 09:30 AM
9:45 - 10:15 AM
10:30 - 11:00 AM * 10101 * 11: 15:00 - 11:45 AM
12:00 PM - 12:30 PM

Теперь, если вы хотите проверить, забронирован ли слот, временные интервалы отличаются, а время начала и окончания теперь отличается от временисохранено в базе данных.Как я могу справиться с этой ситуацией?Я хочу, чтобы старые заказы продолжительностью 15 минут отображали «Забронировано» даже с новой продолжительностью 30 минут.

ОБНОВЛЕНИЕ Желаемый результат.когда у нас есть бронирование с 10:00 до 10:30 до 30 мин. Желаемые результаты в течение 15 мин.09:00 - 09:15 AM
09:30 - 09:45 AM
10: 00 утра - 10:30 утра - БРОНИРОВАНО 10:30 утра - 10:45 утра
11:00 утра -11:15 AM1030 * 11:30 - 11:45 AM
12:00 - 12:15

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...