У меня есть 2 даты, которые я хотел бы получить разницу с использованием функция date_diff.
Это код, который я запускаю:
$starttime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:03:51.579+02:00');
$stoptime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:04:59.811+02:00');
$interval = date_diff($starttime, $stoptime);
$interval->format("%i %s");
Это должно вернуть строку из расчета даты с ’01: 08 ‘
Если он вычислялся правильно, но, кажется, что-то не так с созданием дат, я думаю, var_dump $starttime
а также $stoptime
вернуть FALSE, что в соответствии с документом означает, что объект datetime не может быть создан. Я указываю неправильный формат для моей строки даты / времени?
Вы сделали это более сложным, чем нужно. DateTime()
может обработать этот формат даты, поэтому пропустите createFromFormat()
:
$starttime= new DateTime('2014-10-08T22:03:51.579+02:00');
$stoptime= new DateTime('2014-10-08T22:04:59.811+02:00');
$interval = date_diff($starttime, $stoptime);
echo $interval->format("%i:%S");
Также используйте %S
получить ведущие нули за ваши секунды.
Других решений пока нет …