我正试图使实时聊天链接仅在工作时间出现在网站上。我有下面的代码,它似乎在下午工作,但在早上不工作,我不知道为什么。。。$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:00)之间的任何时间,这些条件都不应为真,因此$LinkStatus
应保持为"on"
。然而,它现在似乎并没有这么做。有人将其设置为"off"
。
我已经在if语句上方和下方回显了变量,这样我就可以确认是这个if语句导致变量设置为"off"
。
正如您可能从我的代码示例中看到的,我对PHP不是很了解。感谢您的帮助。
date('G:i:s') // 24 hours time without leading zero for hour
不会很好地作为字符串排序,例如"9">"10"。
改为使用前导零的24小时时间,这将使正确的排序为"09"<10';
date('H:i:s') // 24 hour time with leading zero for hour
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'
}