Hello我需要计算某个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 ...

和他们使用modulo(%)。

但我希望有另一种方式吗?

有帮助吗?

解决方案

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

其他提示

好的untif我发现它更好我只是写这个:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top