开放/关闭时间之外的PHP

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.