2016-09-15 2 views
0

J'essaie de calculer la différence entre $ timenow et $ time.Diff entre 2 timestamp - PHP

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

Je les ai convertis en dateTime.

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

Et puis a fait le calcul:

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

Erreur: Catchable erreur fatale: objet de la classe DateInterval ne pouvait pas être convertie en chaîne

Je regardais ces difference between 2 timestamps in php et Wrong hour difference between 2 timestamps (hh:mm:ss)

Cela n'a pas aidé.

+3

'interval' de $ est un objet, vous devez formater. http://php.net/manual/fr/datetime.format.php - Par exemple, '$ interval-> format ('Ymd H: i: s');' – Qirel

+0

Vous voulez probablement utiliser 'format' sur l'objet http://php.net/manual/fr/dateinterval.format.php –

+3

Copie possible de [php L'objet de la classe DateInterval n'a pas pu être converti en chaîne] (http://stackoverflow.com/questions/28621270/php -object-of-class-dateinterval-could-not-être-converti en chaîne) – HPierce

Répondre

1

diff va retourner un objet DateInterval plein de bonnes informations sur la différence entre vos deux dates. Vous essayez simplement de faire écho à cet objet qui ne fonctionnera pas. Faites un var_dump() pour voir les propriétés de l'objet:

$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); 

Vous pouvez alors faire écho les propriétés comme:

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

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