根据使用日期的时间更改img源(" h:i:sa")

时间:2017-02-27 23:09:53

标签: php html twitter-bootstrap-3

下午好。

我想根据一天中的时间,特别是日出和日落来更改背景颜色和两个图像。

我编写了这段代码,认为对日出/日落进行比较会很容易,但我在如何最好地检查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语句?

2 个答案:

答案 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与其他范围相结合,我能够创建一个时间范围。