2016-11-09 8 views
2

Ich verwende PHP zu überprüfen, ob Startzeit und Endzeit in Array-Startzeit und Endzeit sind. Dann zeigen diese Zeitstempel nicht. So etwas wie das.PHP überprüfen, ob ein Wert innerhalb Array-Werte ist

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); 
      } 
    } 
} 

Was hier passiert, ist, dass in der ersten Schleife, wenn Startzeit ist 17.15 Uhr und die Endzeit ist 18.00 Uhr, ist es nicht Zeit innerhalb dieses Bereichs zeigt, ist. Aber wenn in der zweiten Schleife die Startzeit 13:15 ist und die Endzeit 15:00 ist, dann zeigt sie die Zeiten innerhalb der ersten Schleife an. Grundsätzlich muss ich es durch jede Schleife validieren. Bitte helfen Sie mir dabei. Danke

+0

Ein String kann nicht kleiner sein dann größer oder. Du brauchst Integer oder mach das in der DB mit 'between'. – chris85

+1

Denken Sie daran, dass die Erweiterung * mysql * veraltet ist. – Hackerman

+0

Ich verwende Zeitstempel, keine Zeichenfolgen. Zeit Datentyp in der DB haben. –

Antwort

0

Machen Sie ein Array von Start-und Endzeit und dann finden Sie Ihre gewünschte Datetime durch in_array PHP-Funktion.

Zum Beispiel:

<?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

Das wird in meinem Fall nicht funktionieren, weil die Zeit nicht sicher ist, und es gibt einen Zeitbereich, nicht Intervalle, in denen ich das validieren muss. –

Verwandte Themen