- Метод Carbon “diffForHumans”:
Laravel по умолчанию использует библиотеку Carbon, мощный инструмент манипулирования датой и временем. Метод «diffForHumans» предоставляет простой способ вычисления разницы во времени между двумя метками времени и возвращает удобочитаемое представление.
Вот пример использования «diffForHumans» в представлениях Blade:
{{ $timestamp->diffForHumans() }}
В зависимости от предоставленной отметки времени будет выведено что-то вроде «2 дня назад» или «3 часа назад».
- Пользовательская директива 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) }}
- Вспомогательная функция:
Если вы предпочитаете использовать вспомогательные функции вместо директив Blade, вы можете определить собственную вспомогательную функцию для достижения того же результата. В файлhelpers.php
добавьте следующий код:
use Carbon\Carbon;
function timeAgo($timestamp)
{
return Carbon::parse($timestamp)->diffForHumans();
}
После добавления вспомогательной функции вы можете вызывать ее непосредственно в представлениях Blade:
{{ timeAgo($timestamp) }}
Используя библиотеку Laravel Carbon и используя директивы Blade или пользовательские вспомогательные функции, вы можете легко отображать временные метки в виде удобочитаемых выражений времени назад в представлениях Laravel 8 Blade. Это расширяет возможности пользователя и добавляет динамизма вашему приложению. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует требованиям вашего проекта.