(PHP)仅在工作时间显示链接?

时间:2013-07-18 15:01:19

标签: php time

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

2 个答案:

答案 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'
  }