簡體   English   中英

在laravel 5.4中的字符串上調用成員函數diffForHumans()

[英]Call to a member function diffForHumans() on string in laravel 5.4

在我的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> 

請幫助我實現這一目標..

您應該這樣:

return \Carbon\Carbon::now()->diffForHumans();

$mytime->toDateTimeString()將返回一個字符串,而不是Carbon對象

假設您使用默認時間戳,則可以使用created_at字段。

public function getTimeAgoAttribute()
{
    return $this->created_at->diffForHumans();
}

像這樣使用

<span class="pull-right">{{ $review->timeAgo }}</span> 

我認為您要做的是調用從模型更新/創建的時間,然后調用diffForHumans()函數,就像下面的代碼一樣:

MyPostModel::all()->first()->updated_at->diffForHumans();

使用以下代碼,

返回Carbon :: createFromTimestampUTC(strtotime($ date))-> diffForHumans();

  function timeAgo($date) { return Carbon::createFromTimestampUTC(strtotime($date))->diffForHumans(); } 

它與當前日期時間進行比較,並為您提供結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM