2016-03-21 1 views
1

Я хочу проверить, работает ли это время с использованием PHP. Но я не смог провести правильное сопоставление времени с помощью любой из функций даты. Поддерживает ли PHP сравнение времени с использованием функций даты или нет?Поддерживает ли PHP правильное сравнение времени if-statement?

В настоящее время я решил свою проблему путем расчета суммы протокола дня прошло:

<?php 
    date_default_timezone_set('Europe/Amsterdam'); 
    $hours = date('G'); 
    $minutes = date('i'); 
    $totalMinutes = ($hours * 60) + $minutes; 
    $betweenMinutes1 = (8 * 60) + 30; 
    $betweenMinutes2 = (17 * 60) + 0; 

    echo $hours.' * 60 + '.$minutes.' = '.$totalMinutes.' minuten van de 1440 op een dag verstreken <br/><br/>'; 

    echo 'if '.$totalMinutes.' is between '.$betweenMinutes1.' and '.$betweenMinutes2.' it is workingtime:'; 

    if (!($totalMinutes > $betweenMinutes1 && $totalMinutes < $betweenMinutes2)) { 
     echo 'It isn\'t workingtime.'; 
    } else { 
     echo 'It is workingtime.'; 
    } 
?> 

Является ли это это лучший способ, или есть способ сделать это, используя соответствующие функции даты в случае if-statement

+4

Если вы используете объекты DateTime, то 100% да, в противном случае (используя стандартные функции даты) вы должны преобразовать в UNIX метки времени для сравнения .... но времена никогда не чисто времена, они всегда даты и время –

ответ

0

Ничего себе, это довольно длинный код для очень небольшого состояния; Вы просто хотите, чтобы проверить текущее время находится в вашем заданном диапазоне

$current=date("Gi"); // hours without leading zeroes and minutes with. 
if($current > 830 && $current < 1700) // 0830 to 1700 hours 
{ 
    // we're open 
} 

Чтобы ответить на ваш фактический вопрос, да PHP имеет временные функции сравнения. Вы можете найти кучу из них here

Смежные вопросы