我正在制定医生预约系统,其中医生将首先进入其开始时间和关闭时间,如上午10:00至下午6:00。如果用户想要医生预约,它将根据我预订。我想显示时间间隔30分钟,如10:00-10:30,10:30-11:00到结束时间。它将从数据库中选择开始时间和结束时间。我怎么能这样做?
答案 0 :(得分:3)
您必须使用strtotime
才能达到您想要的效果。
$starttime = '9:00'; // your start time
$endtime = '21:00'; // End time
$duration = '30'; // split by 30 mins
$array_of_time = array ();
$start_time = strtotime ($starttime); //change to strtotime
$end_time = strtotime ($endtime); //change to strtotime
$add_mins = $duration * 60;
while ($start_time <= $end_time) // loop between time
{
$array_of_time[] = date ("h:i", $start_time);
$start_time += $add_mins; // to check endtie=me
}
可以使用belo代码获得输出。
echo '<pre>';
print_r($array_of_time);
echo '</pre>';
上述代码的输出将是这样的。
Array
(
[0] => 09:00
[1] => 09:30
[2] => 10:00
[3] => 10:30
[4] => 11:00
[5] => 11:30
[6] => 12:00
[7] => 12:30
[8] => 01:00
[9] => 01:30
[10] => 02:00
[11] => 02:30
[12] => 03:00
[13] => 03:30
[14] => 04:00
[15] => 04:30
[16] => 05:00
[17] => 05:30
[18] => 06:00
[19] => 06:30
[20] => 07:00
[21] => 07:30
[22] => 08:00
[23] => 08:30
[24] => 09:00
)
答案 1 :(得分:0)
伪代码:
do connection to database
get result from database with start and endtime
new array
while startTime is not equal to endTime
startTime + 30 minutes
insert into array startTime
while end
generate selectbox with array values
show selectbox
这就是你能做到的。