在IF语句PHP中比较时间

时间:2015-10-01 07:10:02

标签: php time difference

我正在开发一个php模块,我应该管理时差并按特定的时差进行。 我从数据库($ end_date)获取包含时间的值。

$end_date = $result['end_date'];

获取服务器时间
$date = $this->GetServerTime();

获得这两者之间的时差

$diffrence = date("Y-m-d H:i:s",strtotime("$date -  $end_date"));

现在,我需要通过if语句检查时间差是否小于15秒。我的方法:

$to_time = strtotime("0000-00-00 00:00:15");
            if ($difference < $to_time)
            {
             echo "here";

            }

但我相信我做的不对,我该如何比较呢? 我做了很多研究,但无济于事,感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

这样做的一种方法可能是使用类似的东西

$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
$difference = $to_time - $from_time;

if($difference > 15){
   <CODE>
}

对于那些使用与上述不同的日期/时间格式的人,可以使用类似下面代码的内容,您可以使用date()函数的参数来指定日期格式。

$dateFormat = "d/m/Y H:i:s";
$tmp_to_time = date_create_from_format($dateFormat,"25/08/2015 10:45:12");
$tmp_from_time = date_create_from_format($dateFormat,"25/08/2015 10:34:15");

$to_time = strtotime(date_format($tmp_to_time , $dateFormat))
$from_time = strtotime(date_format($tmp_from_time , $dateFormat))
$difference = $to_time - $from_time;

if($difference > 15){
   <CODE>
}

here

找到的灵感和代码的主要部分

答案 1 :(得分:1)

每当我必须做类似的事情时,我只计算时间戳(以秒为单位)。

$end_date = strtotime($result['end_date']);    # timestamp in s
$date     = strtotime($this->GetServerTime()); # timestamp in s

if ($date - $enddate > 15) {
    echo "Here";
}

对于分钟和小时,您可以轻松地将这些时间乘以60。

if ($date - $enddate > (15*60)) { # 15 minutes
    echo "Here";
}

我不完全确定这适用于夏令时,但它应该足以满足大多数用例。

哦,顺便说一句:如果您必须与当前时间进行比较,这非常有用,因为time()会以秒为单位返回时间戳。

答案 2 :(得分:0)

这是如何做到的:

$end_date = strtotime($result['end_date']);
$date     = strtotime($this->GetServerTime());
$difference = $date-$end_date;
$sec = strtotime(15);
if ($difference < $sec){
  echo "here";
 }