Search code examples
phpdatediff

date_diff() expects parameter 1 to be DateTimeInterface, string given


They have the same format:

$date_expire = '2014-08-06 00:00:00';
$date1 = date("Y-m-d G:i:s");
$date2 = date_create($date_expire);

$diff = date_diff($date1, $date2); //this line makes error.

But I am getting this error:

date_diff() expects parameter 1 to be DateTimeInterface, string given


Solution

  • Because you are passing string whereas date_diff expects datetime object,

    $date_expire = '2014-08-06 00:00:00';    
    $date = new DateTime($date_expire);
    $now = new DateTime();
    
    echo $date->diff($now)->format("%d days, %h hours and %i minuts");
    

    DEMO.