2016-07-07 104 views
0

我正在致力於預訂form,一旦選擇某個日期,將顯示可用時間。我在隱藏下拉框中的一些可用時間方面存在問題,並希望得到一些幫助。遞增次數X次數(和打印)

當前,如果在同一天有這個開始時間的預訂,我可以成功隱藏可用時間。例如:

預訂時間爲10:00至16:00。
10:00
12:00
13:00
14:00
15:如果有一個預訂 11:00 1小時,下面的時間將在下拉框中顯示:現在00
16:00

我的問題是訂單超過1小時以上。如果有2小時預訂,我想隱藏可用時間。例如:

預訂在11:00進行2個小時。這將從可用時間中刪除11:00和 12:00。下面的時間將在下拉菜單中顯示下拉框:
10:00
13:00
14:00
15:00
16:00

什麼是實現的最佳途徑這個?我目前將開始時間&總時間存儲在一個數據庫中,並且很好奇,如果一個循環有可能在開始時間增加1小時,直到它達到相同的總小時數。

+1

您需要發佈[MCVE]你的問題顯示你有什麼到目前爲止,我所能做的最好。 – j08691

+0

如果您可以在一小時預訂時取消單一空閒時間,那麼如何在預訂2,3或10小時時無法刪除2,3或10個空閒時間?它有什麼不同? –

+0

沒有看到你的代碼現在或你的數據結構是什麼樣子,很難給出答案。 – ecorvo

回答

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>'; 
    } 
} 
+0

感謝您的幫助,但我不認爲這是我正在尋找的。我編輯了主要帖子,以幫助更清楚。 – Jake

+0

好吧,你能分享如何將這些數據存儲在你的數據庫中,這樣我就可以改變我的答案嗎? – ecorvo

+0

或您當前必須隱藏一小時的代碼。 – ecorvo