【问题标题】:Else If in PHP with time restrictionsElse If 在 PHP 中有时间限制
【发布时间】:2019-11-05 19:32:03
【问题描述】:

我正在尝试让我正在开发的这个网站根据一天中的时间显示不同的图片。我正在使用 PHP elseif 语句。

我尝试将时间格式更改为“G”以消除前导零,我尝试使用一整天的“H:i:s”,并且我尝试只使用'H' 获取触发事件的时间。

<?php
date_default_timezone_set('America/New_York');
$datetime = new DateTime('now');
$time = $datetime->format('H');
if ($time <= 06 &&$time >= 20) {
  echo '<img src="images/SpringNight.png" class="rounded img-fluid" width="720" height="480">';
}else{
  echo '<img src="images/Spring.png" class="rounded img-fluid" width="720" height="480">';
}
?>

我试图让 elseif 中的第一个语句在晚上 8 点到早上 6 点之间弹出。它只是整天输出else。

编辑:我想我明白了。我尝试使用“||”代替“&&”,它似乎奏效了。

<?php
date_default_timezone_set('America/New_York');
$datetime = new DateTime('now');
$time = $datetime->format('H');
if ($time <= 06 || $time >= 20) {
  echo '<img src="images/SpringNight.png" class="rounded img-fluid" width="720" height="480">';
}else{
  echo '<img src="images/Spring.png" class="rounded img-fluid" width="720" height="480">';
}
?>

【问题讨论】:

    标签: php if-statement


    【解决方案1】:

    我建议做一个 || (正如您在评论中所说)作为三元组。然后您可以在没有回显的情况下打印您的 HTML,使用 $fileName 变量而不必重复所有 HTML 两次。

    <?php
    date_default_timezone_set('America/New_York');
    $datetime = new DateTime('now');
    $time = $datetime->format('H');
    $fileName = ($time <= 6 || $time >= 20) ? 'SpringNight' : 'Spring';
    ?>
    <img src="images/<?=$fileName?>.png" class="rounded img-fluid" width="720" height="480">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 2018-09-19
      • 1970-01-01
      • 2018-03-14
      • 2014-08-08
      • 1970-01-01
      相关资源
      最近更新 更多