2016-11-09 9 views
2

PHPを使用して、開始時間と終了時間が配列の開始時間と終了時間内にあるかどうかを確認しています。 このようなものです。ここで何が起こっているPHPは値が配列の値の範囲内にあるかどうかを確認します

while ($row = mysql_fetch_assoc($getReservationSettings)) { 
    if((strtotime($res_date) >=strtotime($row['start_date'])) && $row['recur_end_date'] == '0000-00-00') 
    { 
     if((17:00 <=$row['start_time']) || 17:00 >=$row['end_time']) 
      { 
       $myarray[]=date("H:i:s",strtotime($time)+$i*$secs); 
      } 
    } 
} 

は、開始時刻が17時15分と終了時刻が18:00である場合は、最初のループでは、それがその範囲内の時間を表示されていないということです。しかし、2番目のループで開始時刻が13:15で終了時刻が15:00の場合、最初のループ内に時間が表示されます。基本的に私は各ループを通してそれを検証しなければなりません。これで私を助けてください。ありがとう

+0

文字列が少ないし、または超えることカント。あなたは整数を必要とするか、DBの中で 'between'を使ってこれを行います。 – chris85

+1

* mysql *拡張機能は非推奨です.... – Hackerman

+0

文字列ではなくタイムスタンプを使用しています。 DBに時間データ型を持つ。 –

答えて

0

開始時刻と終了時刻の配列を作成してから、in_array php関数を使用して目的の日時を探します。例えば

<?php 
$time= array("17:00", "18:00", "19:00", "20:00"); 
if (in_array("18:00", $time)) 
{ 
echo "Match found"; 
} 
else 
{ 
echo "Match not found"; 
} 
?> 
+0

これは私の場合はうまくいきません。なぜなら、時間は確かではなく、それを検証しなければならない間隔ではないからです。 –

関連する問題