如何获得日期差异

how to get date difference

在 laravel 我正在使用这个 :

@php
 $ids = Session::get('id');
 $res = DB::table('user')
       ->select('dates as date')
       ->where('id','=',$user_id)
       ->get();
$date_time=$res[0]->date;
$date = new DateTime($date_time);
$now = date('Y-m-d');
$dayss_left=$date->diff($now)->format("%d");
@endphp

//In $date_time i am getting :"2018-06-28"
//And In $now getting:        "2018-02-25"  

它返回我的错误如下:

DateTime::diff() expects parameter 1 to be DateTimeInterface, string given

我在这里做错了什么任何人都可以告诉我只需要几天

您正在传递来自 date. You could create a DateTime 的字符串:

new DateTime($now)

您可以将代码更新为:

$dayss_left=$date->diff(new DateTime($now))->format("%d");

要创建特定格式的 DateTime,您可以使用 createfromformat:

$date = DateTime::createFromFormat('Y-m-d', $date_time);