Время назад в Laravel 8 Blade: упрощение расчета даты в ваших представлениях

  1. Метод Carbon “diffForHumans”:
    Laravel по умолчанию использует библиотеку Carbon, мощный инструмент манипулирования датой и временем. Метод «diffForHumans» предоставляет простой способ вычисления разницы во времени между двумя метками времени и возвращает удобочитаемое представление.

Вот пример использования «diffForHumans» в представлениях Blade:

{{ $timestamp->diffForHumans() }}

В зависимости от предоставленной отметки времени будет выведено что-то вроде «2 дня назад» или «3 часа назад».

  1. Пользовательская директива Blade:
    Вы можете создать собственную директиву Blade, чтобы инкапсулировать логику времени назад и сделать ее многократно используемой в ваших представлениях. Просто добавьте следующий код к своему AppServiceProviderили выделенному поставщику услуг:
use Illuminate\Support\Facades\Blade;
use Carbon\Carbon;
Blade::directive('timeAgo', function ($expression) {
    return "<?php echo Carbon::parse($expression)->diffForHumans(); ?>";
});

Теперь вы можете использовать директиву @timeAgoв представлениях Blade следующим образом:

{{ @timeAgo($timestamp) }}
  1. Вспомогательная функция:
    Если вы предпочитаете использовать вспомогательные функции вместо директив Blade, вы можете определить собственную вспомогательную функцию для достижения того же результата. В файл helpers.phpдобавьте следующий код:
use Carbon\Carbon;
function timeAgo($timestamp)
{
    return Carbon::parse($timestamp)->diffForHumans();
}

После добавления вспомогательной функции вы можете вызывать ее непосредственно в представлениях Blade:

{{ timeAgo($timestamp) }}

Используя библиотеку Laravel Carbon и используя директивы Blade или пользовательские вспомогательные функции, вы можете легко отображать временные метки в виде удобочитаемых выражений времени назад в представлениях Laravel 8 Blade. Это расширяет возможности пользователя и добавляет динамизма вашему приложению. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует требованиям вашего проекта.