我正在预订form
,一旦选择了日期,就会显示可用时间。我有一个问题,从下拉框中隐藏一些可用的时间,并希望得到一些帮助。
目前,如果在同一天预订了此开始时间,我可以成功隐藏可用时间。例如:
预订时间为10:00至16:00。如果有预订 11:00进行1小时,下列时间将显示在下拉框中:
10:00
12:00
13:00
14:00
15:00
16:00
我现在的问题是预订时间超过1小时。如果预订2小时,我想隐藏可用时间。例如:
预订在11:00进行2小时。这将删除11:00和 从可用时间12:00开始。以下时间将显示在下拉框中:
10:00
13:00
14:00
15:00
16:00
实现这一目标的最佳方法是什么?我目前正在存储开始时间&数据库中的总小时数很奇怪,如果一个循环可以在开始时间加1小时,直到它达到相同的总小时数。
答案 0 :(得分:1)
在不了解您的代码或数据结构的情况下,这是我能为您做的最好的
<?php
//these would be the appointments stored on the DB
$results = array(
array(
'apt_date' => '2016-06-01',
'apt_time' => '10',
'apt_duration' => 2
), array(
'apt_date' => '2016-06-01',
'apt_time' => '14',
'apt_duration' => 1
)
);
for ($i = 10; $i <= 16; $i++) {
$ok = true;
foreach ($results as $item) {
if (($i == $item['apt_time'])) {
$ok = false;
if($item['apt_duration'] > 1){
$i = $i +$item['apt_duration'];
}
}
}
if($ok){
echo $i . ':00';
echo '</br>';
}
}