2009-12-16 5 views
1

PHP로 작업 시간 프로그램을 만들었습니다 - 입력 시간을 1.30, 2.10, 1.40으로하고 출력 시간은 4.80 (8 시간)입니다. 하지만 출력 시간 - 5.20 (8.40 시간)이 필요합니다. 참고 : 1.30 + 2.10 + 1.40 = 4.80 (8 시간),하지만 5.20 (8.40 시간)이 필요합니다. 도와주세요 ...PHP 총 시간은 어떻게됩니까?

+0

추가 40 분만 추가하면됩니다. 아니면 우리에게 말하지 않은 것이 있습니까? – dave4420

+1

4.80 = 8 시간 및 5.20 = 8.40 시간? 어떤 종류의 시간 측정입니까? 아인슈타인의 상대성 또는 무엇인가? – Lukman

+0

정확하게 4.80과 8 시간은 어떻게 다른가요? –

답변

2

1.30 + 2.10 + 1.40이 잘못되었습니다. 같아야

((1 * 60) + 30) + ((2 * 60) + 10) + ((1 * 60) + 40) = 320 (분)

320 분 = 5시간 그리고 20 분.

0

는 별도로 분, 초를 추적해야합니다 PHP 사이트에서

$minutes = array(); 
$seconds = array(); 
foreach ($times as $time) { 
    $parts = explode('.', $time); 
    $minutes[] = $time[0]; 
    $seconds[] = $time[1]; 
} 
$total_minutes = array_sum($minutes); 
$total_seconds = array_sum($seconds); 
while ($total_seconds > 60) { 
    $total_minutes++; 
    $total_seconds -= 60; 
} 
echo $total_minutes . ' minutes and ' . $total_seconds . ' seconds'; 
0

발췌를 당신의 쾌락을 위해 :

function AddTime ($oldTime, $TimeToAdd) { 
    $pieces = split(':', $oldTime); 
    $hours=$pieces[0]; 
    $hours=str_replace("00","12",$hours); 
    $minutes=$pieces[1]; 
    $seconds=$pieces[2]; 
    $oldTime=$hours.":".$minutes.":".$seconds; 

    $pieces = split(':', $TimeToAdd); 
    $hours=$pieces[0]; 
    $hours=str_replace("00","12",$hours); 
    $minutes=$pieces[1]; 
    $seconds=$pieces[2]; 

    $str = $minutes." minute ".$seconds." second" ; 
    $str = "01/01/2000 ".$oldTime." am + ".$hours." hour ".$minutes." minute ".$seconds." second" ; 

    if (($timestamp = strtotime($str)) === false) { 
    return false; 
    } else { 
    $sum = date('h:i:s', $timestamp); 
    $pieces = split(':', $sum); 
    $hours = $pieces[0]; 
    $hours = str_replace("12", "00", $hours); 
    $minutes = $pieces[1]; 
    $seconds = $pieces[2]; 
    $sum = $hours.":".$minutes.":".$seconds; 
    return $sum; 
    } 
} 

$firstTime = "00:03:12"; 
$secondTime = "02:04:34"; 

$sum=AddTime($firstTime, $secondTime); 

if($sum != false) { 
    echo $firstTime." + ".$secondTime." = ".$sum; 
} else { 
    echo "failed"; 
} 

출력 : 각 번호에 대한

00:03:12 + 02:04:34 = 02:07:46 
+0

이 코드는 좋은 오버 헤드 IMO와 함께 있지만 효과가 있습니다. –

0

(아래 $t으로 표시)이 작업을 수행 할 수 있습니다.

// start with $total=0 
$hours = floor($t); // 1.10 -> 1 hr 
$minutes = ($t - $hours) * 100; // 1.10 -> 10 mins 
$total += ($hours * 60) + $minutes; 

그러면 총 시간 (분)이 표시됩니다. 따로 시간/분을 얻으려면 다음과 같이하십시오.

$total_mins = $total % 60; // 130 -> 10 mins 
$total_hours = ($total - $total_mins)/60; // 130 -> 2 hrs 
관련 문제