2016-09-15 3 views
0

Я пытаюсь вычислить разницу между $ timenow и $ time.Diff между 2 timestamp - PHP

$time = 2016-09-15 20:10:35 
$timenow = 2016-09-15 20:40:42 

Я преобразовал их на дату.

$time = new DateTime($time); 
$timenow = new DateTime($timenow); 

А потом сделал расчет:

$interval = $timenow->diff($time); 
echo $interval; 

Ошибки: Catchable фатальной ошибки: Объект класса DateInterval не может быть преобразован в строку

Я смотрел на эти difference between 2 timestamps in php и Wrong hour difference between 2 timestamps (hh:mm:ss)

Это не он лейбористская партия

+3

'$ interval' является объектом, вам нужно отформатировать его. http://php.net/manual/en/datetime.format.php - В качестве примера, формат '$ interval-> ('Ymd H: i: s');' – Qirel

+0

Вы, вероятно, хотите использовать 'format' в объект http://php.net/manual/en/dateinterval.format.php –

+3

Возможный дубликат [php Объект класса DateInterval не может быть преобразован в строку] (http://stackoverflow.com/questions/28621270/php -объект-of-class-dateinterval-can-not-be-convert-to-string) – HPierce

ответ

1

diff собирается вернуть объект DateInterval, полный хорошей информации о разнице между двумя датами. Вы просто пытаетесь повторить этот объект, который не будет работать. Сделайте var_dump() видеть свойства объекта:

$time = "2016-09-15 20:10:35"; 
$timenow = "2016-09-15 20:40:42"; 

$time = new DateTime($time); 
$timenow = new DateTime($timenow); 

$interval = $timenow->diff($time); 
var_dump($interval); 

Затем вы можете повторить из свойств, как:

echo $interval->i; // minutes 
// 30 

http://php.net/manual/en/class.dateinterval.php