0

我正在尝试在工作时间在网站上显示实时聊天链接。我有下面的代码,它似乎在下午工作,但不会在早上工作,我不知道为什么......$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 不是很了解。任何帮助表示赞赏。

4

2 回答 2

1
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
于 2013-07-18T15:02:59.460 回答
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'
  }

于 2015-08-19T13:51:41.080 回答