所以,对于学校我必须让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中创建一个背景,但我有点失败。
答案 0 :(得分:0)
您应该使用if
,else 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。我相信你的例子中的额外引号是拼写错误; - )