我正在编写一个小的php程序,根据服务器上的时间来问候。规则如下: 上午3:00:00至11:59:59 AM早上好! 下午12:00:00到下午4:59:59说下午好! 上午5:00至凌晨2: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>";
}
}
我的问题是关于最后的其他问题。我怀疑我的逻辑存在问题,所以如果有人能帮我解决最后的情况,那就是我的情况,如果情况是在下午5点到凌晨2点59分之间。
谢谢! DB
答案 0 :(得分:1)
我认为最简单的方法是使用简单的“else”保留最后一个条件,所以:
function greetingWord(){
$hour = date("G");
if($hour > 0 && $hour < 24){
if($hour >= 3 && $hour < 12)
{
echo "<p>Good Morning. Today is: </p>";
}else if($hour >= 12 && $hour < 17){
echo "<p>Good afternoon. Today is: </p>";
}else{
echo "<p>Good evening. Today is: </p>";
}
}
}
希望它有效。
答案 1 :(得分:1)
我使用三元运算符来显示部分时间,只需对代码进行少量修改。
function greetingWord(int $hour): string
{
return ($hour >= 3 && $hour < 12)
? "Morning: "
: (($hour >= 12 && $hour < 17) ? "afternoon: " : "evening:");
}
foreach(range(0, 23) as $hour) {
echo "<p> Good " . greetingWord($hour) . " Today is: ". $hour ."</p>\n";
}
//or
echo "<p> Good " . greetingWord((int) date('G')) . " Today is: ". $hour ."</p>\n";