2012-04-08 131 views
1

我對PHP很新穎我需要幫助實現PHP中的總小時數和分鐘數。需要幫助在PHP中實現總小時數,分鐘數和秒數

我有以小時,分鐘的時間在PHP陣列和秒

(array) Array 
(
    [0] => 01:10:00 
    [1] => 01:20:30 
    [2] => 00:00:10 
) 

我的預期的輸出應在小時,分鐘和秒的總時間(例如:二時30分四十秒)

回答

0
$hours; 
$minutes; 
$seconds; 

foreach($thatArray as $v) 
{ 
    $subArray = explode(':', $v); 

    $hours += $subArray[0]; 
    $minutes += $subArray[1]; 
    $seconds += $subArray[2]; 
} 

// output $hours/$minutes/$seconds, correctly formatting, etc 
+0

感謝您的時間 – jalf 2012-04-08 03:37:14

+0

@jalf:沒問題,不要忘記你可以點擊旁邊的向上箭頭,以你的答案,獎勵採用點響應,並選擇檢查在你認爲最有用的答案旁邊。 – Josh 2012-04-08 05:00:30

0

不會給你codez。這裏是你如何能做到這一點:

使用explode()

開始通過添加秒獲得時間的單個組件。如果結果大於60,則增加分鐘數等等。

+0

好吧,我知道你很聰明,謝謝 – jalf 2012-04-08 03:36:58

+2

StackOverflow不是你的個人軟件開發者。如果您想要預先編寫代碼,請聘請一位自由開發人員。在這裏,我們幫助您自己編寫代碼。 – xbonez 2012-04-08 03:51:24

+0

是的,我知道,那麼你的問題是什麼? – jalf 2012-04-08 04:07:09

0

最簡單的方法可能是將它們全部轉換爲秒錶示,將它們相加並將它們轉換回來。例如:

function timeToSeconds($time) { 
    $parts = explode(':', $time); 

    return $parts[0] * 3600 + $parts[1] * 60 + $parts[2]; 
} 

function secondsToTime($seconds) { 
    $hours = floor($seconds/3600); 
    $minutes = floor($seconds/60) % 60; 
    $seconds %= 60; 

    return str_pad($hours, 2, '0', STR_PAD_LEFT) . ':' . str_pad($minutes, 2, '0', STR_PAD_LEFT) . ':' . str_pad($seconds, 2, '0', STR_PAD_LEFT); 
} 

$times = array('01:10:00', '01:20:30', '00:00:10'); 
$total = secondsToTime(array_sum(array_map('timeToSeconds', $times))); 

Here's a demo.

+0

感謝minitech,它的工作原理 – jalf 2012-04-08 03:35:58

+0

@jalf:不再? – Ryan 2012-04-09 01:21:26