Среднее время в часах, минутах и ​​секундах в php

У меня есть несколько сумм часов и нужно рассчитать среднее значение. Например, мое общее значение часа равно 2452: 43: 44 (H: m: s), а общее количество – 15. Я хотел бы получить среднее время в том же формате, что и часы: минуты: секунды. Как мы можем это сделать в PHP?

     function average_time($total, $count, $rounding = 0) { $total = explode(":", strval($total)); if (count($total) !== 3) return false; $sum = $total[0]*60*60 + $total[1]*60 + $total[2]; $average = $sum/(float)$count; $hours = floor($average/3600); $minutes = floor(fmod($average,3600)/60); $seconds = number_format(fmod(fmod($average,3600),60),(int)$rounding); return $hours.":".$minutes.":".$seconds; } echo average_time("2452:43:44", 15); // prints "163:30:55" echo average_time("2452:43:44", 15, 2); // prints "163:30:54.93" 

    Близко к решению Антония , но с множеством hours :

     $time = array ( '2452:43:44', '452:43:44', '242:43:44', '252:43:44', '2:43:44' ); $seconds = 0; foreach($time as $hours) { $exp = explode(':', strval($hours)); $seconds += $exp[0]*60*60 + $exp[1]*60 + $exp[2]; } $average = $seconds/sizeof( $time ); echo floor($average/3600).':'.floor(($average%3600)/60).':'.($average%3600)%60; 
    1. Лучшим способом было бы изменить общее значение часа в секундах.
    2. Разделите его на общее значение счета. То, что вы получите, составляет среднее значение в секундах.
    3. Преобразование среднего значения в формате H: m: s.