2016-07-07 14 views
0

私はformという予約を行っています。これは、日付が選択されると利用可能な時間が表示されます。私はドロップダウンボックスから利用可能な時間の一部を隠す問題があり、いくつかの助けが必要です。インクリメント番号X回数(および印刷)

現在、この開始時刻の予約が同じ日にあると、利用可能な時間を正常に隠すことができます。例:

予約は10:00から16:00まで行うことができます。
午前10時00分
12時
13:00
14:00
15:1時間 11:00の予約がある場合は、以下の時間は、ドロップダウンボックスに表示されます。 00
16:00

私の問題は今1時間以上の予約のためです。 2時間の予約があれば、利用可能な時間を隠したいと思います。例:

予約は11:00に2時間です。これにより、利用可能な時間から11:00と 12:00が削除されます。次の時間は、ドロップダウンボックスに表示されます:
10時00
午前13時
午後02時00
午前15時00分
16時00分

達成するための最良の方法は何ですかこの?私は現在、データベースに開始時間&の合計時間を格納しており、合計時間が同じ量に達するまでループが開始時間に1時間を追加することが可能であるかどうか不思議でした。

+1

あなたは、あなたがこれまで持っているものを示す[MCVE]あなたの質問に投稿する必要があるために私ができる最善です。 – j08691

+0

1時間の予約がある場合に1つの空き時間を削除できる場合は、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

このデータがDBにどのように格納されているかを共有することで、回答を変更できますか? – ecorvo

+0

または現在1時間隠す必要があるコード。 – ecorvo