Я пытаюсь определить, есть ли день и время между двумя другими, у меня есть следующее …
$currentdate = date("N h:i:s A");
Это возвращает день недели как число, а затем текущее время в 24-часовом формате.
Я хочу проверить, находится ли $currentdate
между 9:00 в пятницу и 9 утра в понедельник.
Каков наилучший способ справиться с этим?
Я считаю, что это должно дать вам то, о чем вы просите, но я уверен, что есть лучшие способы реализации. Таким образом, в основном время было преобразовано в INT
для сравнения, и часы сконфигурированы, чтобы не иметь $timeOne
нуля, поэтому почему $timeOne
и $timeTwo
короче. Затем я использовал оператор if
для тестирования дней и времени в этот конкретный день, оставляя вам слот для добавления вашего кода, если эти условия будут выполнены.
function checkDayTime() { $day = date(w); //0 (for Sunday) through to 6 (for Saturday) $timeOne = 90000; $timeTwo = 90000;//Added for easier reading $currentTime = (int) date('Gis'); //Time as INT 00000 > 240000 if (($day == 5 && $currentTime > $timeOne) || ($day == 6 || $day == 0) || ($day == 1 && $currentTime < $timeTwo)) { //Between those hours return TRUE; } else { //Not between those hours return FALSE; } }
Просто удалил лишний оператор if
поскольку он не был нужен