【发布时间】:2017-10-04 19:01:32
【问题描述】:
我正在编写一个小的 php 程序,它根据服务器上的一天中的时间打招呼。规则如下: 在 3:00:00 AM 到 11:59:59 AM 之间说早安! 在下午 12:00:00 到下午 4:59:59 之间说下午好! 在下午 5:00:00 到凌晨 2:59:59 之间说晚安!
首先,为了简单起见,我决定使用军事时间。我的程序如下:
function greetingWord()
$hour = date("G");
if($hour >= 15 && $hour < 24)
{
echo "<p>Good Morning. Today is: </p>";
} else if($hour >= 12 && $hour < 17)
{
echo "<p>Good afternoon. Today is: </p>";
}
else if($hour >= 17 && $hour < 3)
{
echo "<p>Good evening. Today is: </p>";
}
}
我的问题是最后一个 else if。我怀疑我的逻辑有问题,所以如果有人能帮助我解决最后的情况,我会很感激,情况是在下午 5 点到凌晨 2 点 59 分之间。
谢谢! 数据库
【问题讨论】:
-
你想把
$hour >= 17 && $hour < 3改成使用or,因为一个数字不能既大于17又小于3。当然,如果小时大于15,它永远不会命中,因为@987654323 @ 会取代它。 -
你的逻辑是错误的。当小时是 23 时,您说“早上好”。请注意,您不必检查它是否
-
不是 15:00 = 3:00 P.M.吗?我认为你有那个落后 03:00 = 3:00 A.M.对于早上,我认为应该是 ($hour >= 3 && $hours
-
谢谢。$hour >= 3 && $hour