7

您好,我需要计算一些 DateInterval 之间的平均时间。

实际上我有一些像这样的 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 ...

他们使用模数 (%)。

但我希望有另一种方式?

4

2 回答 2

2

好吧,如果我发现某事更好,我就写这个:

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

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

于 2012-07-26T10:08:16.883 回答
1

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

于 2012-07-26T09:43:09.657 回答