@samuser
programmer

Как вычислить сумму часов?

Есть массив часов $arraytime(
07:01:05, 06:21:30, 08:15:15, 07:13:08, 06:02:00, 09:21:10, 12:54:48
)

Как вычислить в часовом формате 57:17:56

Я написал
$result = 0;
		foreach ($arraytimeas $elem) {
			$result = strtotime($result) + strtotime($elem);
		}
echo $result; // выдает 55 т.е. минуты и секунды не сложить и не показывает как исправить
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
@alexalexes
Чуть посложнее, чем предыдущая ваша задача. Постарайтесь самостоятельно разобраться, как работать со временем.
$arraytime = ['07:01:05', '06:21:30', '08:15:15', '07:13:08', '06:02:00', '09:21:10', '12:54:48'];
$sum = 0;
foreach($arraytime as $time)
    $sum += strtotime($time) - strtotime('00:00:00');
echo sprintf('%d:', $sum / 3600).date('i:s', $sum);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
$sumH = 0;
$sumM = 0;
$sumS = 0;
foreach($arraytime as $time) {
    list($H, $M, $S) = explode(':',$time);
    $sumH += $H;
    $sumM += $M;
    $sumS += $S;
}
$newS = $sumS % 60;
$sumM += intval($sumS / 60);
$newM = $sumM % 60;
$sumH += intval($sumM / 60);
$result = implode(':', [$sumH, $newM, $newS]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы