php - 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">';
}
?>
解决方案
我建议做一个 || (正如您在评论中所说)作为三元组。然后您可以在没有回显的情况下打印您的 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">
推荐阅读
- typescript - 键入模拟商店的最佳方式是什么?
- javascript - 如何将此计时器转换为 60 分钟?
- spring-boot - 解析 ResponseBody 期间出现 IllegalArgumentException
- spring-boot - Java11 + Springboot-2.1.5.RELEASE 内存泄漏
- python - JSON 到 Pandas 数据帧的转换
- python - 在 Qt 中使用鼠标中键单击和拖动移动整个窗口
- reactjs - 对 REACT 中的变量范围感到困惑?
- sql - 插入附近需要 '(' 或 Select 的语法不正确
- ios - 用户登录 Xamarin Forms 后的通知权限?
- azure - 从所有资源组中获取特定标签名称及其值