2013-06-30 6 views
1

평균을 구하는 데 시간 계산상의 문제가 있습니다.평균 시간을 얻는 방법

나는이 통화 시간을 06:03:05로 요약했으며 평균 175 회의 통화를 얻고 싶습니다.

date_default_timezone_set('America/Chicago'); 
    $ts = strtotime("06:03:05"); 
    echo date("H:i:s", $ts/175); 

내가 얻을 : 12시 26분 25초

내가이 매우 큰 시간 평균을 마련 이유를 모르겠어요. 이 일을 제대로하고 있습니까? 도와주세요.

+0

'$ ts/175'를 계산하기 위해 정수처럼'$ ts'를 사용할 수 없습니다. – tranisstor

답변

1

날짜 구성 요소가없는 strtotime 호출에 현재 날짜가 기본값으로 설정되어있는 것이 문제입니다. 따라서 $ts은 많이 입니다.은 시간 부분의 합계보다 큽니다. 날짜 부분도 포함됩니다.

그런 시간 기능을 사용하지 않는 것이 좋습니다. 시, 분, 초를 기준으로 초를 계산하는 것은 간단합니다. 일단 그렇게하면 date()을 사용하여 형식화 된 시간을 에코 할 수 있습니다. 만 최대 24 시간 작동

function getTimeAverage($hours, $minutes, $seconds, $division) { 
    $seconds += ($hours * 3600) + ($minutes * 60); 
    return $seconds/$division; 
} 

$average = getTimeAverage(6, 3, 5, 175); 

echo gmdate("H:i:s", $average); 
+0

그것은'gmdate ('H : i : s', $ average);'이어야합니다. 그러나 이것은 24 시간까지만 작동합니다. – bitWorking

+0

좋은 지적입니다. 나는 대답을 편집했다. - 그리니치 표준시에 살고 있으므로 다음과 같은 시간대 문제를 잊어 버리는 경향이 있습니다. :) – Atli

+0

오 .. 이제 알 겠어요. 많이 감사합니다 ... Atli and redreggae –

0

쉬운 방법 중 하나 :

이와 비슷한 더 많은 것을보십시오. 다른 방법으로는 Atlis 접근 방식을 사용하고 초를 초 단위로 변환하는 방법을 검색합니다.

$time = '06:03:05'; 
$seconds = strtotime("1970-01-01 $time UTC"); 
$average = $seconds/175; 
echo gmdate('H:i:s', $average); 
+0

공유 해 주셔서 감사합니다 :) –

관련 문제