从数据库访问数据以与当前日期进行比较以计算总天数

时间:2019-04-29 10:24:50

标签: laravel laravel-5 laravel-5.6

我试图访问存储在数据库表中的日期,并将其与当前日期进行比较,以便获得天数,但它显示此错误

Patient_PatientEmailAddress

这是我的控制器中使用的代码

DateTime::__construct(): Failed to parse time string ([{"quit_date":null},{"quit_date":null}]) at position 0 ([): Unexpected character

但是如果我手动设置$quit_date = Information::select('quit_date') ->where('user_id','=',\Auth::user()->id) ->get(); $date = new Carbon($quit_date); $now = Carbon::now(); $day = $date->diffInDays($now); 的日期为例如“ 2019-04-25 00:00:00.000000” ,则代码可以正常工作并显示不同日期之间的日期日期,但是当我使用$quit_date从数据库中读取日期时,它显示错误。

2 个答案:

答案 0 :(得分:0)

    use Auth;     //top of controller
    $checkdate = Information::
            ->where('user_id','=',Auth::user()->id)
            ->first();
    $quit_date=$checkdate->quit_date;
    $date = new Carbon($quit_date);
    $now = Carbon::now();
    $day = $date->diffInDays($now);

答案 1 :(得分:0)

发生此问题是因为您在查询末尾使用zip。该方法返回->get()而不是单个对象。通过使用Collection返回单个对象可以解决此问题。

错误本身是因为在->first()行中,Carbon无法将$date = new Carbon($quit_date);转换为日期。

这应该有效:

Collection