PHP:检查时间并输出适当的问候语

时间:2017-10-04 19:01:32

标签: php time

我正在编写一个小的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

2 个答案:

答案 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";