2012-07-26 217 views
6

你好,我需要计算一些DateInterval之间的平均时间。平均日期间隔php

其实我已经有些Dateinterval这样的:

for ($i = 0 ; $i < count($startDate) ; $i++) 
    { 
      $diffTable[] = date_diff($finishDate[$i], $startDate[$i]); 
      echo $diffTable[$i]->format("%Y-%M-%d %H:%i:%s"); 
    } 

这里是输出:

00-00-0 00:13:17 
00-00-0 00:7:47 
00-00-0 00:7:14 
00-00-0 00:10:39 

我需要计算这个间隔之间的平均时间。 这里只有一秒钟,但可能是月或年。

我找不到一个很容易计算的好方法。我可以简单地添加每dateInterval用这样的转换:

sec + 60xmin + 3600xHour ...

,并与模(%)播放。

但我希望有另一种方式?

回答

1

您应该将分钟乘以60,将小时乘以3600等,直到只剩下几秒钟。从那里很容易计算出平均值。

+0

我知道我可以这样计算,但是,我正在寻找另一种方式... – 2012-07-26 09:44:48

-1

请参考以下链接http://php.net/manual/en/function.date-diff.php

有一群用户/开发人员的注意可用的时间差的功能。

尝试一下。我希望他们中的一个能帮助你。

+0

我看看,但无法找到那些可以帮助我... – 2012-07-26 10:06:21

+0

搜索“eugene at ultimatecms dot co dot za“在同一页上。我认为date_diff($ start,$ end =“NOW”)函数会帮助你。 – pinaldesai 2012-07-26 10:09:35

+0

您认为哪些功能可以帮助回答问题?你能否提供一个例子来演示如何使用日期 - 差异函数并对其执行平均甚至是除法? – Rikki 2013-01-25 17:28:50

1

好untif我发现某事更好,我只是写:

function dateIntervalToSecond($interval) 
    { 
     return $interval->y  * 31556926 
       + $interval->m * 2629743 
       + $interval->d * 6400 
       + $interval->h * 3600 
       + $interval->i * 60 
       + $interval->s; 
    } 

它并不完美,但总比没有好。