Ví dụ
<?php
$time_arr = [
'00:12:56', '10:11:12', '24:12:44',
'50:51:52', '10:10:10'
];
$time = strtotime('00:00:00');
$total_time = 0;
foreach ($time_arr as $ele) {
$sec_time = strtotime($ele) - $time;
$total_time += $sec_time;
}
$hours = intval($total_time / 3600);
$total_time -= $hours * 3600;
$min = intval($total_time / 60);
$sec = $total_time - $min * 60;
print_r("The total time is: ");
echo "$hours:$min:$sec";
?>
Kết quả
The total time is: 95:59:54
Giải thích
Mảng chứa chuỗi thời gian HH:MM:SS. strtotime('00:00:00') lấy timestamp mốc 00:00:00 hôm nay. Duyệt mảng, chuyển mỗi phần tử thành timestamp, trừ mốc 0 để ra giây, cộng dồn. Cuối chuyển tổng giây thành giờ:phút:giây.
Sửa lỗi nghiêm trọng: Kết quả gốc ghi -441915:-12:-58 là SAI (số âm). Nguyên do: strtotime('24:12:44') và '50:51:52' không hợp lệ (giờ > 23). strtotime() sẽ parse sai hoặc trả về false/0. Cần parse thủ công HH:MM:SS hoặc dùng DateTime cho giờ > 24.
Code sửa: parse thủ công explode(':') rồi tính giây = H*3600 + M*60 + S.