Я пытался использовать класс DateTime для вычисления интервала.
Я использую метку времени Unix из $ _SERVER [‘REQUEST_TIME’] и время, полученное из базы данных, чтобы получить интервал, который имеет время DateInterval. Эта часть работает.
Этот интервал может составлять, например, 5 минут и 10 секунд с момента начала процесса.
Мое ожидаемое время для завершения этого процесса составляет 10 минут, и я хочу сообщить пользователю, что осталось 4 минуты 50 секунд ожидаемого времени.
$running_time; // calculated before, type DateInterval. Echoing the formatted value shows correct time
// (only problem is no leading 0's for single-digit minutes/seconds in format: '%i:%s')
$total = new DateTime('10:00'); // ten minutes, 0 seconds expected total running time
$time_left = $total->diff(new DateTime($running_time->format('%i:%s'))); // fatal error
Я думаю, что это будет работать, за исключением того, что, как ни странно, функция форматирования работает не так, как ожидалось. Минуты и секунды не имеют начальных нулей, когда они являются однозначными.
Есть намеки?
Да, документация PHP отключена на этом.
Используйте заглавные буквы I и S, и вы получите первые нули.
$running_time->format('%I:%S')
Других решений пока нет …