在我使用的laravel模型中
getTimeagoAttribute()
在这个函数中我试图得到那个timeago值例如当我在11.30发布一个评论时现在时间是12:30意味着我想在1小时前显示在评论附近并且我的函数中的代码是
public function getTimeagoAttribute()
{
$mytime = \Carbon\Carbon::now();
$date = $mytime->toDateTimeString()->diffForHumans();
return $date;
}
当我尝试运行代码时,它会向我显示错误Call to a member function diffForHumans() on string
这是实现我想要的正确方法,还是有任何其他方法来实现这一点。
这是我在刀片视图中实现的方式
<span class="pull-right">{{$review->timeago}}</span>
请帮助我实现这个目标..
答案 0 :(得分:2)
你应该这样:
return \Carbon\Carbon::now()->diffForHumans();
此$mytime->toDateTimeString()
将返回不是Carbon
对象
答案 1 :(得分:0)
假设您使用默认时间戳,则可以使用created_at
字段。
public function getTimeAgoAttribute()
{
return $this->created_at->diffForHumans();
}
像
一样使用它<span class="pull-right">{{ $review->timeAgo }}</span>
答案 2 :(得分:0)
我认为你所做的是从模型中调用更新/创建的时间,然后调用diffForHumans()函数,就像下面的代码一样:
MyPostModel::all()->first()->updated_at->diffForHumans();
答案 3 :(得分:-1)
使用以下代码
返回 碳:: createFromTimestampUTC(的strtotime($日期)) - &GT; diffForHumans();
function timeAgo($date) { return Carbon::createFromTimestampUTC(strtotime($date))->diffForHumans(); }
它与当前日期时间进行比较,并为您提供结果