如果当前时间超出我们开放的时间,那么就做点什么。我已经看过代码,如果时间在两次之间你做某事,但如果时间超出时间,我需要它做一些事情。
$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';
}
这是我在几个小时内使用的,在两小时之外需要一些东西。
答案 0 :(得分:2)
你可以改变条件:
if ($date1 < $date2 || $date1 > $date3) {
echo 'outside the hours';}
别忘了将你的AND语句改为OR
答案 1 :(得分:1)
当你没有打开时...你已经关闭了。所以只需用else {}扩展你的if语句。像这样:
$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!";
}
注意 - 如果您在上午8:30开放并在凌晨4点关闭,那么您应该使用&gt; =和&lt; =运算符。
PS - 我冒昧地重命名你的变量以获得更好的可读性。