我正在开发一个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";
}
但我相信我做的不对,我该如何比较呢? 我做了很多研究,但无济于事,感谢任何帮助。
答案 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";
}