Как правильно сравнить дату и время?

252
06 октября 2017, 18:42

В общем суть задачи, нужно выводить сообщение в будни дни с 18 вечера и до 9 утра и в любое время выходного дня.

Есть две функции одна сравнивает время, другая проверяет на выходной день

    function WeekendCheck($date) {
        return (date('N', strtotime($date)) >= 6);
    }
    function TimeCheck($date) 
    {
       $date_min = new DateTime("9:00");
       $date_max = new DateTime("18:00");
       $date_now = new DateTime($date);
       if ($date_now >= $date_min && $date_now <= $date_max) 
       {
           return true;
       }
       return false;
    }
    if (WeekendCheck("2017-10-07"))
    {
        print("Сообщение в выходной день");
    } else {
        if(!TimeCheck("8:00")) {
            print("Сообщение в будний день");
        }
    };

Этот вариант работает как надо, но есть ли варианты попроще?

Answer 1
function TimeCheck(){
    $now = (int) (new DateTime())->format("H");
    return $now < 9 || $now > 18;
}
function WeekendCheck(){
    $now = (int) (new DateTime())->format("w");
    return $now === 0 || $now === 6;
}
if (WeekendCheck()){
    print("Сообщение в выходной день");
} else if(TimeCheck()) {
    print("Сообщение в будний день");
};
READ ALSO
Вывод записей через foreach

Вывод записей через foreach

Хочу вывести записи в два блока list-group (если запись с id_user == 1 то в один блок вносить, а если id_user == 3 то в другой )Но они выводятся каждая запись...

299
не сохраняется сессия в yii2

не сохраняется сессия в yii2

Не работает логин в Yii2 - после каждого запроса создаётся новая сессия

162
Разбить строку не удаляя разделители

Разбить строку не удаляя разделители

Добрый деньНужно разбить строку на массив при этом сохранить разделитель Как такое реализовать с explode еще не знаю

214
AJAX-запрос и случайный ID-кнопки [требует правки]

AJAX-запрос и случайный ID-кнопки [требует правки]

Доброе время суток! Имеется сайт, не мойПроблема следующая: при нажатии на кнопку, отправляется AJAX-запрос, на сервер

185