如果时间是两个小时PHP之间

时间:2015-06-22 02:30:13

标签: php date if-statement time between

我浏览了所有相关帖子,但我无法找到错误的地方。我的目标是如果时间在早上6点到晚上7点之间有一个图片显示,如果时间在晚上7点到早上6点之间则有一个不同的图片。 这就是我所拥有的,现在我感到困惑。

date_default_timezone_set('Canada/Newfoundland'); // NDT
$current_date = date('G:i:s');

if ($current_date >= 19 && $current_date <= 6) {
     echo "<img src=' $night ' />";
} else {
     echo "<img src=' $day ' />";
}

每当我运行我所拥有的东西时,它总是出现在其他地方,所以我相信问题在于我如何设置时间? 提前感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:5)

$hour = (int) date('G');

if ($hour >= 6 && $hour <=19) {
    // between 6am and 7pm
} else {
    //between 7pm and 6am
}

答案 1 :(得分:1)

查看您的日期创建

$current_date = date('G:i:s');

您收到格式为19:13:03的日期,因此将其与数字19进行比较可能效果不佳。

  
      
  • G - 24-hour format of an hour without leading zeros
  •   
  • i - Minutes with leading zeros
  •   
  • s - Seconds, with leading zeros
  •   

如果您只想要小时,那就

$hr = intval(date('G'));

echo "<img src='" . ( $hr >= 19 && $hr <= 6 ? $night : $day ) . "' />";

答案 2 :(得分:1)

使用Timeofday Time of Day PHP,您将当前时间格式化为24小时格式,包括分钟和秒。由于$ current_date将始终采用xx:xx:xx格式,因此永远不会等于6和19