2016-07-06 55 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')); 
相關問題