2016-04-01 14 views
0

Geçerli saat açık olduğumuz saatler dışındaysa, bir şeyler yapın. Saat iki kez arasında bir şey yaparsan, bir şeyler yaparsın, ama saatlerin dışında bir şey yapmak için ona ihtiyacım var.Açık/kapalı saatlerin dışında 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'; 
} 

Saatlerce kullanıyorum, iki saat dışında bir şeye ihtiyacım var.

cevap

2

sadece koşulunu değiştirebilirsiniz:

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

açık değilken VEYA

1

yanı senin VE deyimi değiştirmek unutmayın ... sen kapalıyız. Öyleyse if ifadenizi başka bir {} ile uzatın. böylece gibi:

$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!"; 
} 

Not - Eğer 8.30 açıp 4.00 PM at yakın, o zaman> = ve < = operatörler kullanmalıdır.

PS - Daha iyi okunabilirlik için değişkenlerinizi yeniden adlandırma özgürlüğünü kullandım.

+0

Cehennem evet. $ date1, $ date2 ve $ date3 okumak için çok çirkin ... – Random

+0

Haftada bir gün açın ??? ;-) – Werner