Подтвердить что ты не робот

Как получить разницу во времени в удобочитаемом формате с помощью Laravel 5?

Я хочу показать разницу между текущей датой и временем с той, которая хранится в столбце updated_at. Тем не менее, я хочу, чтобы он был дружественным к человеку, например:

53 mins ago
2 hours ago
3 days ago

Есть ли какая-нибудь функция, которую я мог бы использовать, чтобы упростить ее?

Чтобы быть уверенным, что вы меня понимаете, допустим, у меня в базе данных есть столбец (updated_at), который равен 2015-06-22 20:00:03, а текущее время - 20:00:28. Тогда я бы хотел увидеть:

25 mins ago

Когда оно превышает 59 минут, я хочу показывать только часы, а когда оно превышает 24 часа, я хочу видеть, сколько дней назад.

4b9b3361

Ответ 1

По умолчанию Eloquent преобразует столбцы created_at и updated_at в экземпляры Carbon. Поэтому, если вы извлекаете данные с помощью Eloquent, вы можете сделать это, как показано ниже.

$object->updated_at->diffForHumans();

Если вы хотите настроить поля, которые будут автоматически изменены, то в вашей модели вы можете настроить их по своему усмотрению.

// Carbon instance fields
protected $dates = ['created_at', 'updated_at', 'deleted_at'];

Ответ 2

если дата в строковом формате, используйте laravel Carbon; например,

 {{ \Carbon\Carbon::parse($on_revision->assignment->deadline)->diffForhumans() }}

Обратите внимание, как я обертываю строку в carbon :: parse()