PHP strtotime()并根据两个给定时间比较当前时间

时间:2013-05-09 04:39:23

标签: strtotime

我在基于两个预先指定的时间比较当前时间时遇到问题。让我告诉我想要什么: 如果当前时间在晚上10点到早上8点之间,我想显示一条消息。我的代码是

$current_time = strtotime('now');
if ( $current_time > strtotime('10:00pm') && $current_time < strtotime('8:00am') ) { 
   //Display message
}

但它不起作用,因为在凌晨12:00之后,strtotime('10:00pm')计算今天的10PM值并且无法在给定条件下通过。所以我需要你的建议。

2 个答案:

答案 0 :(得分:1)

试试这个,

     $current_hour = date("G", strtotime("now"));
     if ($current_hour > 23 || $current_hour < 8) {
     if ( $current_time > strtotime('10:00pm -1 Day') && $current_time < strtotime('8:00am') ) { //after 
     //Display message
    }
     }else{
     if ( $current_time > strtotime('10:00pm') && $current_time < strtotime('8:00am +1 Day') ) { 
    //Display message
      }
    }

答案 1 :(得分:1)

date("G", strtotime("now"))将显示24小时不带前导零的格式。

您想要的代码是:

$current_hour = date("G", strtotime("now"));
if ($current_hour >= 22 || $current_hour < 8) {
    //Display message
}