Laravel 5 if оператор между Carbon diffForHumans и toFormattedDatesString


Laravel 5 if оператор между Carbon diffForHumans и toFormattedDatesString

31.10.2017 12:58:13 Просмотров 7 Источник

Я хочу написать оператор if, чтобы показать метку времени в формате diffForHumans для меток времени менее 5 дней и в toFormattedDatesString для всего, что старше этого.

Например, сегодня 31/10/17, поэтому метка времени для 28/10/2017 должна показывать - 3 дня назад, а метка времени для 20/10/2017 должна показывать 20 октября 2017 года.

Какую логику я должен использовать для достижения этой цели?

У вопроса есть решение - Посмотреть?

Ответы - Laravel 5 if оператор между Carbon diffForHumans и toFormattedDatesString / Laravel 5 if statement between Carbon diffForHumans and toFormattedDatesString

Kenneth Tomagan

31.10.2017 01:33:50

Используя углерод, вы можете сделать это вот так.

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
Является ответом!
Balraj Allam

31.10.2017 01:53:00

В вашей модели 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 !!}
Помочь в развитии проекта:
Закрыть X