Laravel 5 Carbon diffForHumans 和 toFormattedDatesString 之间的 if 语句

Laravel 5 if statement between Carbon diffForHumans and toFormattedDatesString

我想编写一个 if 语句,以 diffForHumans 格式显示小于 5 天的时间戳,并以 toFormattedDatesString 格式显示早于此的时间戳。

例如,今天是 2017 年 10 月 31 日,因此 28/10/2017 的时间戳应该显示 - 3 天前,20/10/2017 的时间戳应该显示 2017 年 10 月 20 日。

我应该使用什么逻辑来实现这个?

使用 Carbon 你可以这样做。

1

代码

Carbon::createFromFormat('d/m/Y', '28/10/2017')->diffForHumans();

结果

3 days

2

代码

Carbon::createFromFormat('d/m/Y', '28/10/2017')->toFormattedDateString();

结果

Oct 28, 2017

在您的模型中 e.g A.php,像这样创建一个访问器,

public function getCreatedAtAttribute(){
    if($this->created_at->diffInDays(Carbon::now()) > 5){
       return $this->created_at->toFormattedDateString();
    }else{
       return $this->created_at->diffForHumans();
    }
}

并且在您看来您可以访问它

{!! $a->created_at !!}