문제

안녕하세요, 일부 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 ...

및 이들은 모듈로 (%)로 재생됩니다.

그러나 나는 다른 방법이 있기를 바랍니다.

도움이 되었습니까?

해결책

몇 초 남음이 될 때까지 분만 60 시간, 3600 시간이 넘는 시간을 곱해야합니다.거기에서 평균을 계산하기 쉽습니다.

다른 팁

괜찮아요.

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