2015-01-03 2 views
1

Я хочу знать, как я могу использовать PHP, чтобы спросить, если время больше, чемЕсли время больше и меньше, чем

08:30

и ниже

21:15

, если я использую:

<?php 

if ((date("H")>8&&date("i")>30) && (date("H")<21&&date("i")<25)) { 
echo 'This website is closed from 08:30 - 21:25. Sorry for the Inconvenience.'; 
exit; 

} 

?> 

Это не точный способ сказать, что, потому что даже если время больше чем 8 и ниже 21, существует минутная проверка ...

+3

Почему бы не упростите 'if ((date ('Hi')> 830) && (date ('Hi') <2125))' –

+0

@Mark Baker :) Soooss Simple! – iprophesy

ответ

3

Вы можете получить дату/время и полосу даты. Это время можно сравнить с другими значениями времени. В приведенном ниже коде, рассчитать значения в секундах от полуночи текущего времени, 8.30 и 21.15, а затем if становится довольно просто:

define('SecondsPerDay', 86400); 
define('SecondsPerHour', 3600); 
define('SecondsPerMinute', 60); 

$time = time() % SecondsPerDay; 

$from = 8 * SecondsPerHour + 30 * SecondsPerMinute; 
$to = 21 * SecondsPerHour + 15 * SecondsPerMinute; 

if ($time >= $from && $time < $to) { 
    echo 'This website is closed from 08:30 - 21:25. Sorry for the Inconvenience.'; 
    exit; 
} 
+0

Не могли бы вы объяснить, пожалуйста, больше об этих цифрах? 21 * 3600? 15 * 60? Почему * 3600? почему * 60? Глядя и смотрю, и я не вижу –

+0

Это все в секундах, поэтому 86400 секунд в день, 3600 секунд в час, 60 секунд в минуту. Все вычисления говорят только о 1 день, поэтому время сохраняется в пределах 24-часового диапазона, используя по модулю, и 8:30 преобразуется в секунды, выполняя 8 * секунд_первого_часа + 30 * секунд_пер_минут. Я обновлю код. – GolezTrol

+0

это умный. мне нравится это –

0
$startTime = '08:30'; 
$endTime = '21:15'; 
$time = new DateTime($startTime); 
$time1 = date_format($time, 'H:i'); 
$time = new DateTime($endTime); 
$time2 = date_format($time, 'H:i'); 
"Today is " . $current =date("H:i") . "<br>"; 
if ($current > $time1 && $current < $time2) 
{ 
echo 'This website is closed from 08:30 - 21:25. Sorry for the Inconvenience.'; 
}else{ 

echo "It's open"; 
} 

REFERENCE