2011-10-06 4 views
0

정확하게 72 시간을 가져야한다. 그러나 72 시간 12 초가 주어진다. 왜?PHP 모듈러스 부분이 제대로 계산되지 않음 - 코드 패드가 제공됨

http://codepad.org/KNj44By5

+0

는 기술적으로 매일 정확히 24 시간입니다. 그래서 우리는 윤년을 보내고 있습니다. –

+0

이 예제가 문제를 일으킬 것이라고 말하는 것입니까? 저는 이것을 사용하여 근무 시간을 계산했으며, 주당, 월간, 총 23 시간 59 분 59 초를 합산하는 계산이 필요했습니다. – Oseer

답변

3

은 수학 잘못이기 때문입니다. $elapsed은 초 단위이므로 계수를 취하기 전에 나눌 필요가 없습니다. 당신은 또한 당신의 제로 패딩을 망쳐

$in = strtotime("2011-10-02 23:00:00"); 
$out = strtotime("2011-10-05 23:00:00"); // 72 hours apart 

$elapsed = $out - $in; 

$hours = floor($elapsed/3600); 
$minutes = floor(($elapsed/60) % 60); 
    if (strlen($minutes) == "1") { $minutes = "0".$minutes; } // No single digits 

$seconds = $elapsed % 60; 
    if (strlen($seconds) == "1") { $seconds = "0".$seconds; } // No single digits 

$total = $hours.":".$minutes.":".$seconds; // Should be 72:00:00 

echo $total 

편집 : 당신이 정말 얻고있는 것은 다음과 같이 작동 시간 % 60

의 계수이다. 220으로 돌리고 있습니다. 여기

업데이트 codepad : http://codepad.org/XY8L9EJ1

+0

설명해 주셔서 감사합니다 .... 예 저는 제로의 문제를 발견했습니다 :) – Oseer

관련 문제