我正在尝试在营业时间内在仅网站上显示实时聊天链接。我有下面的代码似乎在下午工作,但不会在早上工作,我不知道为什么... $start
和$end
是从MySQL数据库收到的值,但在我的例子中,我对它们进行了硬编码以使示例更简单。
$LinkStatus = "on";
$start = 9:00:00;
$end = 23:00:00;
$current_time = date('G:i:s'); //9:35:00
if (($start > $current_time) || ($end < $current_time)) {
$LinkStatus = "off";
}
如果开始时间大于当前时间,则业务尚未开放。如果结束时间小于当前时间,那么它是在数小时后。在上午9点至晚上11点(23点)之间的任何时间,这些条件都不应该是真的,因此$LinkStatus
应保持"on"
。但是,它现在似乎没有这样做。有些事情是将其设置为"off"
。
我已经回显了if语句之上和之下的变量,所以我可以确认这是if语句导致变量设置为"off"
。
正如您可以从我的代码示例中看到的那样,在PHP方面我不是很了解。任何帮助表示赞赏。
答案 0 :(得分:1)
date('G:i:s') // 24 hours time without leading zero for hour
...不会很好地排序为字符串,例如'9'&gt; '10'。
使用前导零的24小时时间,这使得正确的排序'09'&lt; '10';
date('H:i:s') // 24 hour time with leading zero for hour
答案 1 :(得分:0)
date_default_timezone_set('Europe/London');
$day_start = '09:00:00';
$day_end = '16:59:59';
$current_time = date('H:i:s'); // For 9-5 hours only
$current_day = date('N'); // For Monday to Friday only
if (($current_day <= 5) && ($current_time >= $day_start) && ($current_time <= $day_end)) {
echo 'ON';
} else {
echo 'OFF'
}