У меня приблизительно несколько часов, которые состоят из нескольких часов - нескольких минут - нескольких секунд.
примерно так: 170: 156: 230, что означает 170 часов 156 минут и 230 секунд. Теперь, как я могу превратить это значение в нечто подобное: 172: 59: 59.
общее количество секунд не должно превышать 59 секунд.
Если больше, количество переполнения увеличится до минуты. я бы сделал то же самое для суммы минут:
то есть сумма минут никогда не превышает 59, если это было так, сумма переполнения будет добавлена к общему количеству часов.
Я уже сделал это (что, конечно, не идеально)
$raw_times = ['h'=>102, 'm'=>353, 's'=>345];
foreach (array_reverse($raw_times) as $type => $value) {
switch ($type) {
case 's':
if (60 < $value) {
while ((60 < $value) && (0 <= $value)) {
$sec_overlap += 60;
$value -= 60;
}
$raw_times['s'] = $value;
$raw_times['m'] += $sec_overlap;
return $raw_times;
}
break;
case 'm':
// some thing like above...
break;
}
}