If the current time is outside of the hours we are open then do something. I've seen code where you do something if the time is between the two times, but I need it to do something if the time is outside of the hours.
$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';
}
This is what I'm using for within hours, need something for outside the two hours.
You can just change the condition:
if ($date1 < $date2 || $date1 > $date3) {
echo 'outside the hours';}
Don't forget to change your AND statement as well to OR
When you're not open... you're closed. So just extend your if-statement with an else{}. Like so:
$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!";
}
Note - If you open at 8.30am and close at 4.00am, then you should use the >= and <= operators.
PS - I took the liberty of renaming your variables for better readability.