2017-12-22 16 views
1

Beispiel, mein tmp Array ist:Vergleichen h: Zeit Format-String PHP ia - funktioniert nicht

Array 
(
    [checkin] => 11:00am 
    [checkout] => 12:00pm 
    [day_from] => 09:59am 
    [day_to] => 06:00pm 
) 

ich Code unten bin mit der Zeit zu vergleichen, aber in beiden Fällen ist es zeigt immer 'Hallo' auch die checkin Zeit und Check-Out-Zeit sind beide innerhalb von Tag-und-Tag-Bereich.

Eigentlich ist diese Funktion, um zu überprüfen, ob der Check-in und die Check-out-Zeit des Gastes innerhalb der Öffnungszeiten von oder zu Stunden liegen oder nicht?

Jede Hilfe wird sehr geschätzt! Danke im Voraus :-)

$tmp_arr = array(); 
$tmp_arr['checkin'] = $checkin = date('h:ia',strtotime($checkin)); 
$tmp_arr['checkout'] = $checkout = date('h:ia',strtotime($checkout)); 
$tmp_arr['day_from'] = $day_from = date('h:ia',strtotime($day_from)); 
$tmp_arr['day_to'] = $day_to = date('h:ia',strtotime($day_to)); 
print_r($tmp_arr); 
if($checkin>=$day_from && $checkin<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
if($checkout>=$day_from && $checkout<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 

Antwort

0

Sie sollten nur die Zeit Zeichenfolgen in Unix-Zeitstempel mit strtotime konvertieren. Dann können Sie sie vergleichen, wie Sie es erwartet haben.

$checkin = '11:00am'; 
$checkout = '12:00pm'; 
$day_from = '09:59am'; 
$day_to = '06:00pm'; 

$tmp_arr = array(); 
$tmp_arr['checkin'] = $checkin = strtotime($checkin); 
$tmp_arr['checkout'] = $checkout = strtotime($checkout); 
$tmp_arr['day_from'] = $day_from = strtotime($day_from); 
$tmp_arr['day_to'] = $day_to = strtotime($day_to); 
print_r($tmp_arr); 
if($checkin>=$day_from && $checkin<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
if($checkout>=$day_from && $checkout<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
+0

Vielen Dank. Es funktionierte! –