我有一个使用laravel创建的数据表,这是我用来获取数据的代码
@Entity
public class Strecke {
@OneToMany(cascade = CascadeType.ALL, mappedBy="strecke")
private List<Faehre> faehren = new ArrayList<>();
}
updated_at列中包含的示例数据如下所示
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);
}
早些时候,我试过2017-05-06 15:16:54
,但是json已经腐败了。
此代码
return $user->updated_at->diffForHumans()
在1秒前显示所有行的last_seen,即使持续一段时间也不会更新。
我如何确保上次看到的显示应该如此?
答案 0 :(得分:1)
updated_at字段应该是Carbon的一个实例,并且使用方法self.view.wantsLayer = true
应该可以正常工作。
diffForHumans
我能否知道破坏你的json反应怎么样?此外,您无需在此代码中指定模型类型。
return $user->updated_at->diffForHumans();
答案 1 :(得分:0)
我终于以这种方式工作了
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);
}
答案 2 :(得分:0)
仅使用$user->updated_at
而不使用Carbon::createFromDate($user->updated_at)
,因为updated_at
是date_format
。您不需要Carbon::createFromDate
。
如果您想要$date = $user->updated_at
及之后:
return $date->diffForHumans();