如何将当前时间与PHP中的预设时间进行比较?

时间:2017-06-07 04:36:30

标签: php string date time

我希望PHP检查它是否是上午8:30,如果是,我希望它更改变量。 我试过了,

$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam )){
    $refresh = true;
}

但布尔值没有改变。知道我做错了吗?

6 个答案:

答案 0 :(得分:3)

strtotime depends on the time zone.. so you should define timezone too. You should set your default timezone before comparing.

http://php.net/strtotime

显示上传的文件

示例:

date_default_timezone_set('America/Los_Angeles');

$eightthirtyam = "08:30:00";
if(time() >= strtotime($eightthirtyam )){
    $refresh = true;
}

http://codepad.org/GC0VA7nw

答案 1 :(得分:2)

在php中我们有new DateTime函数。因此,您可以使用它来匹配您的日期,如下例所示

$refresh = false;
$eightthirtyam = "08:30:00";
$date = new DateTime();
if($date->format('H:i:s') == $eightthirtyam)
{
    $refresh = true;
}

这是一个例子

$refresh = "false";
$eightthirtyam = "08:30:00";
$date = new DateTime("2017-06-07 8:30:00"); // suppose your system current time is this.
if($date->format('H:i:s') == $eightthirtyam)
{
    $refresh = "true";
}
echo $refresh;

您可以通过在线php编辑器http://www.writephponline.com/

执行来检查答案

尝试以上示例,我认为这可能会对您有所帮助。

答案 2 :(得分:1)

函数time()始终返回与时区无关的时间戳(= UTC),而strtotime()给出本地时间,因此存在时区偏移。

您需要在比较前从当地时间减去时区偏移量,并检查live demo以便更好地理解。

答案 3 :(得分:0)

这将对您有所帮助:

date_default_timezone_set('Asia/Kolkata');
$eightthirtyam = "08:30:00";
$refresh = false;
if(strtotime(date('H:i:s') == strtotime($eightthirtyam )){
    $refresh = true;
}

参考: - / strtotime

答案 4 :(得分:0)

$hr= date('H:i'); 

  if(strtotime($hr)==strtotime(08:30)  ){
    $refresh = true;
  } 

请尝试这种方式。它适用于你的情况。

答案 5 :(得分:-1)

代码很好,直到我知道。但是如果你想做一些动作,你可以做这样的事情。

         $refresh=false;
         $eightthirtyam = "08:30:00";
         if(time() >= strtotime($eightthirtyam ))
         {
          $refresh = true;
         }
         if($refresh)
         {
            //your statement is true do something here
         }
         else
         {
           //false statement
         }