strtotime
не обрабатывает длительности, только допустимые метки времени.Вы можете справиться с этим самостоятельно, разбив время на части, взорвав отметку времени в часах, минутах и секундах.Затем вы можете преобразовать их в общее количество секунд.
<?php
$time1 = '95:05:00';
$time2 = '32:30:00';
function timeToSecs($time) {
list($h, $m, $s) = explode(':', $time);
$sec = (int) $s;
$sec += $h * 3600;
$sec += $m * 60;
return $sec;
}
$t1 = timeToSecs($time1);
$t2 = timeToSecs($time2);
$tdiff = $t1 - $t2;
echo "Difference: $tdiff seconds";
Затем мы можем преобразовать его обратно в часы, минуты и секунды:
$start = new \DateTime("@0");
$end = new \DateTime("@$tdiff");
$interval = $end->diff($start);
$time = sprintf(
'%d:%02d:%02d',
($interval->d * 24) + $interval->h,
$interval->i,
$interval->s
);
echo $time; // 62:35:00