PHP按时更改背景

时间:2015-10-01 16:08:24

标签: php time

所以,对于学校我必须让PHP显示时间,例如当它是12:00时,背景是下午一个,而在02:00它是一个夜晚。这是我的代码:

<body>

<?php

<div class="tijd">
date_default_timezone_set('GMT+1');
echo date('h:i');

$Tijd = date('h');


if ($Tijd > 12 || $Tijd <17') {
echo '<div class="Middag"> </div>'; 
} 


if ($Tijd > 12 || $Tijd <17') { 
echo '<div class="Avond"> </div>';
} 


if ($Tijd >= '22') {
echo '<div class="Nacht"> </div>'; 
} 


if ($Tijd >= '6') {
echo '<div class="Ochtend"> </div>'; 
} 

 echo('Dit is een test...')
?>

</div>  
</body>

</html>

但是,什么在这里不起作用?在网页上,它正确显示时间但不显示背景。它也没有工作,而我做背景颜色或其他东西,所以我知道它不仅是背景颜色。我也尝试在PHP中创建一个背景,但我有点失败。

3 个答案:

答案 0 :(得分:0)

您应该使用ifelse if

if ($Tijd > 12 || $Tijd <17) {
    echo '<div class="Middag"> </div>'; 
} else if ($Tijd > 12 || $Tijd <17) { 
    echo '<div class="Avond"> </div>';
} else if ($Tijd >= 22) {
    echo '<div class="Nacht"> </div>'; 
} else if ($Tijd >= 6) {
    echo '<div class="Ochtend"> </div>'; 
} 

话虽如此,你的前两个测试条件完全相同,所以你也应该看一下

答案 1 :(得分:0)

(这应该是一个评论,但它有点长)。

除了Marc B的评论之外,所有地方都有随机引号 - 当你尝试进行数字比较时,不要引用数值。你正在混合HTML和PHP -

<?php

<div class="tijd">

这应该会导致您的代码抛出大错误。如果您没有看到这些错误,那么您需要调查原因。

你运行多个if语句的方式很麻烦。您可以使用if ... else if ... else if ... else,但如果使用switch语句,您的代码将更加清晰:

switch((integer)$Tijd) {
   case 13:
   case 14:
   case 15:
   case 16:
      echo '<div class="Middag"> </div>';
      break; 
   case 22:
   case 23:
      echo '<div class="Nacht"> </div>'; 
      break;
   default:
      echo '<div class="Avond"> </div>';
      break;
  }

如您所见 - 这里有一些空白,原始代码没有描述。

答案 2 :(得分:0)

<?php
$hour = date('H'); //H is for 24 hours interval
if ($hour > 4 && $hour < 6) {
    $class = 'earlier-morning';
} elseif ($hour >=6 && $hour <=11) {
    $class = 'morning';
} elseif ($hour >=11 && $hour < 15) {
    $class = 'midday';
} elseif($hour >= 15 && $hour < 19) {
    $class = 'day';
} elseif ($hour >= 19 && $hour < 22) {
    $class = 'evening';
//the only one case left -  hours between 22 and 4
} else {
    $class = 'night';
}

echo sprintf('<div class="%s"></div>', $class);

这里的诀窍是elseif 因此,这里只有一个条件可以使用。

P.S。我相信你的例子中的额外引号是拼写错误; - )