【问题标题】:If time is between two hours PHP如果时间在两个小时之间 PHP
【发布时间】:2015-06-22 02:30:13
【问题描述】:

我浏览了所有相关帖子,但找不到哪里出错了。我的目标是在早上 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 ' />";
}

每当我运行我拥有的东西时,总是会出现 else,所以我认为问题在于我如何设置时间? 提前感谢您提供的任何帮助。

【问题讨论】:

    标签: php date if-statement time between


    【解决方案1】:
    $hour = (int) date('G');
    
    if ($hour >= 6 && $hour <=19) {
        // between 6am and 7pm
    } else {
        //between 7pm and 6am
    }
    

    【讨论】:

    • 好的。所以只有一个小时就足够了。谢谢你帮助我!
    • @FacetiousFemme 是的,因为这是您唯一要比较的东西。在您的代码中,您将完整的日期字符串与数字进行比较
    • @MarkEriksson 在我有这个的同一页面上,我现在希望做同样的事情,但需要几个月/季节。我可以使用 $month= (int) date('F');还是有另一种方法来获得几个月?我也可以发布另一个问题,如果它比发表评论更好。
    【解决方案2】:

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

    【讨论】:

    • 是的,好的。谢谢你的链接!永远感谢他们!
    【解决方案3】:

    查看您的日期创建

    $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 ) . "' />";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      相关资源
      最近更新 更多