下午好。
我想根据一天中的时间,特别是日出和日落来更改背景颜色和两个图像。
我编写了这段代码,认为对日出/日落进行比较会很容易,但我在如何最好地检查if - else
语句中的正确时间范围时遇到了麻烦。基本上我似乎找不到任何东西来展示如何表示这些时间范围。
我认为else也是多余的,因为无论如何默认将是第一个变量。
我的代码:
<?php
$pic1 = "images/full_top_bg_01.png";
$pic2 = "images/full_top_bg_02.png";
$bgcolor = "#3E7B98";
$hour = date('G');
if( $hour < 13 ){
$pic1 = "images/full_top_bg_01.png";
$pic2 = "images/full_top_bg_02.png";
$bgcolor = "#3e7b98";
} else if( $hour < 15 ){
$pic1 = "images/full_top_bg_01-night.png";
$pic2 = "images/full_top_bg_02_night.png";
$bgcolor = "#333333";
}
else {
$pic1 = "images/full_top_bg_01.png";
$pic2 = "images/full_top_bg_02.png";
$bgcolor = "#333333";
}
?>
然后在代码中设置变量:
<div class="container-fluid top_container" style="background-color:<?php echo $bgcolor;?>">
<img src="<?php echo $pic1;?>" class="img-responsive" alt="clouds1">
<img src="<?php echo $pic2;?>" class="img-responsive" alt="clouds2">
</div>
所以我的问题基本上是这样的:a)我是否需要一个数组来表示时间范围,b)是否需要我的else if
语句?
答案 0 :(得分:1)
您需要做的就是查看当天的小时。
<?php
// Using "G" in the date to get the 24-hour hour of the day
// instead of the 12-hour (am/pm) hour.
$hour = date('G');
if ( $hour < 12 ) {
// Morning picture
}
else if ( $hour < 18 ) {
// Afternoon
}
else {
// Evening
}
?>
您可以添加尽可能多的条件,以确定一天中的更多时间。
答案 1 :(得分:0)
如果其他人正在阅读此内容 - 这是一个有效的时间范围的解决方案:
$hour = date('G');
if( $hour < 6 && $hour > 18 ){
$pic1 = "images/full_top_bg_01.png";
$pic2 = "images/full_top_bg_02.png";
$bgcolor = "#3E7B98";
} else if( $hour > 18 && $hour < 6 ){
$pic1 = "images/full_top_bg_01-night.png";
$pic2 = "images/full_top_bg_02_night.png";
$bgcolor = "#333333";
}
使用范围$hour < 6 && $hour > 18
与其他范围相结合,我能够创建一个时间范围。