DateTime::__construct() 期望参数 1 为字符串,给定的对象
DateTime::__construct() expects parameter 1 to be string, object given
我正在尝试计算两个日期。当我放置
$from = Carbon::createFromFormat('m-d-Y H:i:s', '02-10-2017 10:02:20');
代码我得到了价值,但是当我从 mysql
中放置数据时
$from = Carbon::createFromFormat('m-d-Y H:i:s', $from_date);
找不到数据,也无法计算起止日期
Controller.php
public function circulerMatchView()
{
$user_id = Auth::user()->id;
$resume_exp = Experience::select('user_exp_keyword')
->where('user_id','=',$user_id)
->get();
$from_date = Experience::selectRaw('exp_from_date')
->where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->get();
$to_date = Experience::selectRaw('exp_to_date')
->where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->get();
$from = DateTime::createFromFormat('m-d-Y H:i:s', $from_date);
$to = Carbon::createFromFormat('m-d-Y H:i:s', $to_date);
$realAge = Carbon::parse($to)->diff(Carbon::parse($from))->format('%y');
print_r($realAge);
}
如果 $from_date
是 02-21-2017 并且 $to_date
是 02-21-2018
结果是 1 年
您正在使用 get
获取数组。用您的代码替换这两行并检查。它只会获取字段数据值。
$from_date = Experience::
where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->pluck('exp_from_date')[0];
$to_date = Experience::
where('user_id','=',$user_id)
->orderBy('exp_to_date','desc')
->take(1)
->pluck('exp_to_date')[0];
检查此 documentation 以了解有关 pluck
的详细信息。
我正在尝试计算两个日期。当我放置
$from = Carbon::createFromFormat('m-d-Y H:i:s', '02-10-2017 10:02:20');
代码我得到了价值,但是当我从 mysql
中放置数据时$from = Carbon::createFromFormat('m-d-Y H:i:s', $from_date);
找不到数据,也无法计算起止日期
Controller.php
public function circulerMatchView()
{
$user_id = Auth::user()->id;
$resume_exp = Experience::select('user_exp_keyword')
->where('user_id','=',$user_id)
->get();
$from_date = Experience::selectRaw('exp_from_date')
->where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->get();
$to_date = Experience::selectRaw('exp_to_date')
->where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->get();
$from = DateTime::createFromFormat('m-d-Y H:i:s', $from_date);
$to = Carbon::createFromFormat('m-d-Y H:i:s', $to_date);
$realAge = Carbon::parse($to)->diff(Carbon::parse($from))->format('%y');
print_r($realAge);
}
如果 $from_date
是 02-21-2017 并且 $to_date
是 02-21-2018
结果是 1 年
您正在使用 get
获取数组。用您的代码替换这两行并检查。它只会获取字段数据值。
$from_date = Experience::
where('user_id','=',$user_id)
->orderBy('exp_from_date','desc')
->take(1)
->pluck('exp_from_date')[0];
$to_date = Experience::
where('user_id','=',$user_id)
->orderBy('exp_to_date','desc')
->take(1)
->pluck('exp_to_date')[0];
检查此 documentation 以了解有关 pluck
的详细信息。