2011-10-06 4 views
0

총 시간이 몇 분이고 총 시간은 & 분입니다.총 분을 Xhrs, Xmin으로 표시하는 방법은 무엇입니까?

당신이 할 경우

$elapsed = "6476"; // Trying to get 107:56 (107 hours, 56 min) 

if ($elapsed > 60) { $format = "i:s"; } 
if ($elapsed > 3600) { $format = "H:i:s"; } 

$showdiff = gmdate($format, $elapsed); 

이의 문제는 그것이 23hrs 59 분 위의 계산을 위해 작동하지 않는 것입니다.

$elapsed = $elapsed/60; // total hours 

만 다음 (이 경우 107.933333333를) 일부를 얻을 것이다 :

그래서, 당신은 간단한 나눗셈을 할 수 있습니다. 나는 이것을 몇 시간으로 유지해야한다. 어떤 제안?

+0

0을 표시하고 싶습니까 (0 시간 또는 0 분)시겠습니까? –

답변

2

당신이 원하는 것을 달성하기 위해 나누기 (앞에서 말한 것처럼)와 모듈러스 나누기를 사용할 수 있어야합니다.

$hours = floor($elapsed/60); 
$minutes = round(($elapsed/60) % 60); 

echo $hours . "hrs " . $minutes . "min"; 
+0

초까지 확장 할 수 있습니까? – Oseer

+0

'$ minutes = floor (($ elapsed/60) % 60)'로 변경하고'$ seconds = round ($ elapsed/(3600) % 60);'를 추가하십시오. 6476의 초기 입력은 분 단위이므로이 값을 초 단위로 변경해야 작동합니다. '3600'은 분당 60 초 * 시간당 60 분입니다. –

+0

알았어요. 감사. – Oseer

1

당신이 시도 할 수

$elapsed = $elapsed/60; // total hours (107.933333333) 
$parts = explode(".", $elapsed); // split 107.93333 into 2 parts using the . as a separator 
$minutes = $parts[1] // $parts[0] is 107, this will be the .9333 
$minutes = $minutes * 60 // = 55.99... 
$minutes = round($minutes); // round 55.9999 up to 56 
$hours = $parts[0]; 

echo "$hours hrs $minutes mins"; 

아마 조금 더 나은 기록하지만 내 변명은 내가 :) 피곤하다 할 수 있지만 당신에게 아이디어를 줄 당신은 당신이 무엇을해야하도록해야

.

관련 문제