首页 > 解决方案 > Else If 在 PHP 中有时间限制

问题描述

我正在尝试让我正在开发的这个网站根据一天中的时间显示不同的图片。我正在使用 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 点之间弹出。它只是整天输出其他内容。

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

<?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">';
}
?>

标签: phpif-statement

解决方案


我建议做一个 || (正如您在评论中所说)作为三元组。然后您可以在没有回显的情况下打印您的 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">

推荐阅读