2016-11-09 80 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,它沒有顯示該範圍內的時間。但是如果在第二個循環中開始時間是13:15而結束時間是15:00,那麼它將在第一個循環內顯示時間。基本上我必須通過每個循環來驗證它。請幫助我。謝謝

+0

的字符串不能是小於或大於。你需要整數或者用'between'在DB中做這個。 – chris85

+1

請記住,* mysql *擴展名已棄用.... – Hackerman

+0

我使用的是時間戳,而不是字符串。在數據庫中有時間數據類型。 –

回答

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

這不會對我的情況起作用,因爲時間不確定,而且有一個時間範圍不是我必須驗證的時間間隔。 –