2016-07-06 61 views
1

我现在面临一个小问题,我需要你的帮助:)计数只有当它的两个日期之间的间隔超过4S

我解释一下: 我有2个日期这样的数组:

DateMin : 16/03/2016 19:12:08 DateMax : 16/03/2016 19:18:29 
DateMin : 16/03/2016 19:12:08 DateMax : 16/03/2016 19:18:30 
DateMin : 16/03/2016 19:12:09 DateMax : 16/03/2016 19:18:30 
DateMin : 16/03/2016 19:12:09 DateMax : 16/03/2016 19:18:31 
DateMin : 07/04/2016 12:14:21 DateMax : 07/04/2016 12:31:03 

我想要做的是计算2个日期之间的间隔,只要这个间隔大于4秒。

这里是我想要做的事:

foreach($res as $r){ 
      if(isset($output[$r['DATE']])) { 
       $dateBefore = null; 
       $dateSql = DateTime::createFromFormat("d/m/Y G:i:s",$r['DATE']); 
       if($dateBefore == null){ 
        $dateBefore = DateTime::createFromFormat("d/m/Y G:i:s",$r['DATE']); 
       } 
       $interval = $dateSql->diff($dateBefore); 
       if($interval->format('%s') > 4){ 
        $dateBefore = DateTime::createFromFormat("d/m/Y G:i:s",$r['DATE']); 
        $output[$r['DATE']] += intval($interval->format('%s')); 
       } 
      } 
      else 
       $output[$r['DATE']] = 0; 
     } 
+0

如果差值为4秒或更少会发生什么? –

+2

你面临的问题是什么? –

+0

我把这个值设为0,如果它小于4秒,我不关心它的差别。 我面临的问题是,我不知道为什么我有太多的价值或太少 – sleakerz

回答

2

我想,你需要改变

if($interval->format('%s') > 4) 

if($interval->format('%R%a') > 4) 

$output[$r['DATE']] += intval($interval->format('%s')); 

as

$output[$r['DATE']] += intval($interval->format('%R%a')); 
相关问题