2012-04-08 134 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