首页 > 解决方案 > 如何在 PHP 中的一天两次之间回显语句

问题描述

我试图根据一天中四个特定时间之间的时间显示一条消息,但我不明白我的错误。下面是我的代码和我的错误信息。

$curtime = date("h:i:sa");
echo $curtime;
if ($curtime >= 5:45:00am and $curtime =< 11:59:59am){
    echo "Good Morning";
}
if ($curtime >= 12:00:00pm and $curtime =< 5:59:59pm){
    echo "Good Afternoon";
}
if ($curtime >= 6:00:00pm and $curtime =< 5:44:59am){
    echo "Good Evening";
}

错误信息:

PHP Syntax Check: Parse error: syntax error, unexpected ':' in your code on line 11

标签: phpmysql

解决方案


错误来自5:45:00am刚刚挂在那里的文本。

您需要从字符串创建日期对象,例如:

$curtime = date_create_from_format("h:i:sa", date("h:i:sa"));
$date1 = date_create_from_format("h:i:sa", '5:45:00am');
$date2 = date_create_from_format("h:i:sa", '11:59:59am');

然后使用该日期对象与当前进行比较:

if ($curtime >= $date1 and $curtime <= $date2){
    echo "Good Morning";
}

但是,将当前的 24 小时 + 分钟 + 秒存储在变量中并使用它们进行比较会更快

$curtime = date('His');


if ($curtime >= 54500 and $curtime <= 0){
    echo "Good Morning";
}
if ($curtime >= 120000 and $curtime <= 175959){
    echo "Good Afternoon";
}
if ($curtime >= 180000 and $curtime <= 54459am){
    echo "Good Evening";
}

推荐阅读