让 carbon 与用户 table 中 laravel 的 updated_at 列一起工作
Get carbon to work with laravel's updated_at column in users table
我有一个使用 laravel 创建的数据表,这是我用来获取数据的代码
public function getTasks()
{
$users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']);
return Datatables::of($users)
->addColumn('action', function ($user) {
return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>';
})->editColumn('users_last_seen_carbon_object', function(User $user) {
$datetime = Carbon::createFromDate($user->updated_at);
return $datetime->diffForHumans();
})->make(true);
}
updated_at 列中包含的示例数据如下所示
2017-05-06 15:16:54
早些时候我试过 return $user->updated_at->diffForHumans()
但 json 已损坏。
此代码
$datetime = Carbon::createFromDate($user->updated_at);
return $datetime->diffForHumans();
对所有行显示 last_seen 1 秒前,即使在一段时间后也不会更新。
我怎样才能确保最后看到的显示正确?
updated_at 字段应该是 Carbon 的一个实例,并且在其上使用方法 diffForHumans
应该可以正常工作。
return $user->updated_at->diffForHumans();
我能知道这会如何破坏您的 json 回复吗?此外,您不需要在此代码中指定模型类型。
function(User $user)
我终于这样工作了
public function getTasks()
{
$users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']);
return Datatables::of($users)
->addColumn('action', function ($user) {
return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>';
})->editColumn('updated_at', function(User $user) {
$dt = $user->updated_at->toDateTimeString();
$datetime = Carbon::parse($dt);;
return $datetime->diffForHumans();
})->make(true);
}
只使用 $user->updated_at
而没有 Carbon::createFromDate($user->updated_at)
,因为 updated_at
是 date_format
。你不需要 Carbon::createFromDate
.
如果你想要$date = $user->updated_at
及之后:
return $date->diffForHumans();
我有一个使用 laravel 创建的数据表,这是我用来获取数据的代码
public function getTasks()
{
$users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']);
return Datatables::of($users)
->addColumn('action', function ($user) {
return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>';
})->editColumn('users_last_seen_carbon_object', function(User $user) {
$datetime = Carbon::createFromDate($user->updated_at);
return $datetime->diffForHumans();
})->make(true);
}
updated_at 列中包含的示例数据如下所示
2017-05-06 15:16:54
早些时候我试过 return $user->updated_at->diffForHumans()
但 json 已损坏。
此代码
$datetime = Carbon::createFromDate($user->updated_at);
return $datetime->diffForHumans();
对所有行显示 last_seen 1 秒前,即使在一段时间后也不会更新。
我怎样才能确保最后看到的显示正确?
updated_at 字段应该是 Carbon 的一个实例,并且在其上使用方法 diffForHumans
应该可以正常工作。
return $user->updated_at->diffForHumans();
我能知道这会如何破坏您的 json 回复吗?此外,您不需要在此代码中指定模型类型。
function(User $user)
我终于这样工作了
public function getTasks()
{
$users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']);
return Datatables::of($users)
->addColumn('action', function ($user) {
return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>';
})->editColumn('updated_at', function(User $user) {
$dt = $user->updated_at->toDateTimeString();
$datetime = Carbon::parse($dt);;
return $datetime->diffForHumans();
})->make(true);
}
只使用 $user->updated_at
而没有 Carbon::createFromDate($user->updated_at)
,因为 updated_at
是 date_format
。你不需要 Carbon::createFromDate
.
如果你想要$date = $user->updated_at
及之后:
return $date->diffForHumans();