2016-04-01 3 views
0

Wenn die aktuelle Zeit außerhalb der Stunden ist, sind wir offen, dann etwas tun. Ich habe Code gesehen, wo man etwas macht, wenn die Zeit zwischen den beiden Zeiten liegt, aber ich brauche etwas, wenn die Zeit außerhalb der Stunden liegt.Außerhalb der Öffnungszeiten öffnen/schließen php

$current_time = date("H:i a"); 
$open   = "8:30 am"; 
$close  = "4:00 pm"; 
echo $current_time; 
$date1 = DateTime::createFromFormat('H:i a', $current_time); 
$date2 = DateTime::createFromFormat('H:i a', $open); 
$date3 = DateTime::createFromFormat('H:i a', $close); 
if ($date1 > $date2 && $date1 < $date3) { 
    echo 'here'; 
} 

Dies ist, was ich für innerhalb von Stunden benutze, brauche etwas außerhalb der zwei Stunden.

Antwort

2

Sie können nur den Zustand ändern:

if ($date1 < $date2 || $date1 > $date3) { 
echo 'outside the hours';} 

Vergessen Sie nicht, Ihre AND-Anweisung zu ändern, wie gut oder

1

Wenn Sie nicht offen sind ... Sie sind geschlossen. Erweitern Sie einfach Ihre if-Anweisung mit einem else {}. Wie so:

$current_time = date("H:i a"); 
$openAt  = "8:30 am"; 
$closeAt  = "4:00 pm"; 
$currentTime = DateTime::createFromFormat('H:i a', $current_time); 
$openingTime = DateTime::createFromFormat('H:i a', $openAt); 
$closingTime = DateTime::createFromFormat('H:i a', $closeAt); 

if($currentTime >= $openingTime && $currentTime <= $closingTime){ 
    echo "we're open!"; 
}else{ 
    echo "we're closed!"; 
} 

Hinweis - Wenn Sie um 8.30 Uhr und schließen um 04.00 Uhr öffnen, dann sollten Sie die> = und < = Operatoren verwenden.

PS - Ich habe mir die Freiheit genommen, Ihre Variablen für bessere Lesbarkeit umzubenennen.

+0

Hölle ja. $ date1, $ date2 und $ date3 sind so hässlich zu lesen ... – Random

+0

An allen Tagen der Woche geöffnet ??? ;-) – Werner

Verwandte Themen