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 ...

そして彼らは Modulo (%) で遊んでいます。

しかし、別の方法があるといいのですが?

4

2 に答える 2

2

私がsthをより良く見つけたなら、私はこれを書くだけです:

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 に答える