开放/关闭时间之外的PHP

时间:2016-04-01 14:51:15

标签: php datetime

如果当前时间超出我们开放的时间,那么就做点什么。我已经看过代码,如果时间在两次之间你做某事,但如果时间超出时间,我需要它做一些事情。

$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';
}

这是我在几个小时内使用的,在两小时之外需要一些东西。

2 个答案:

答案 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 - 我冒昧地重命名你的变量以获得更好的可读性。