I want to show shop availability status with every half an hour using Php and mysql,
For that i tried with following code which creating time slots for me
$duration="30";
$start="10:00AM";
$end="07:00PM";
$start = new DateTime($start);
$end = new DateTime($end);
$start_time = $start->format('H:i');
$end_time = $end->format('H:i');
$i=0;
while(strtotime($start_time) <= strtotime($end_time)){
$start = $start_time;
$end = date('H:i',strtotime('+'.$duration.' minutes',strtotime($start_time)));
$start_time = date('H:i',strtotime('+'.$duration.' minutes',strtotime($start_time)));
$i++;
if(strtotime($start_time) <= strtotime($end_time)){
$time[$i]['start'] = $start;
$time[$i]['end'] = $end;
}
}
print_R($time);
Above code showing following result (creating time slots properly)
Array
(
[1] => Array
(
[start] => 10:00
[end] => 10:30
)
[2] => Array
(
[start] => 10:30
[end] => 11:00
)
...// and so on
I want result something like this
Array
(
[1] => Array
(
[start] => 10:00
[end] => 10:30
[status] => availiable
)
[2] => Array
(
[start] => 10:30
[end] => 11:00
[status] => booked
)
Here is my table “booking” in phpmyadmin
id shop_id date booking_start_time booking_close_time
1 3 4-7-2019 10:00 11:00
How can i do this ? Thanks in advance
2
Answers
You need to compare time slot from database as below:
Hope it helps you.
This is the best solution for your query.