Форматирование динамических дат в Laravel Blade - PullRequest
0 голосов
/ 27 июня 2018

Я работаю над электронными письмами в формате HTML, в которых есть раздел с датами, в котором я хочу разместить заполнитель, поскольку это динамические данные.

HTML-код, в котором я использую даты:

<tr>
   <td style="padding-bottom: 3%;text-align:right;">when:</td>
   <td style="padding-bottom: 3%;padding-left: 8%;">Mar 28/18 @ 7:00pm to <br> Mar 30/18 @ 7:00pm</td>
</tr>

Задача

Мне интересно вместо Mar 28/18 @ 7:00pm to <br> Mar 30/18 @ 7:00pm, какой заполнитель мне нужен для правильного форматирования переменных даты?

1 Ответ

0 голосов
/ 27 июня 2018

В зависимости от типа данных динамической даты вам необходимо выполнить различные действия.

Форматирование экземпляров Carbon

{{ $start->format('M d/y @ h:ma') }} to <br> {{ $end->format('M d/y @ h:ma') }}

Форматирование временных отметок ванили

{{ date('M d/y @ h:ma', $start) }} to <br> {{ date('M d/y @ h:ma', $end) }}

Форматирование допустимых строк даты

{{ date('M d/y @ h:ma', strtotime($start)) }} to <br> {{ date('M d/y @ h:ma', strtotime($end)) }}

Форматирование дат с использованием пользовательских директив Blade

Расширение Blade для новой директивы @datetime. Добавьте BladeServiceProvider и зарегистрируйте директиву в методе boot.

Вы также можете быть ленивым и добавить его к уже существующему AppServiceProvider.

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class BladeServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Blade::directive('datetime', function ($expression) {
            return "<?php echo ($expression)->format('M d/y @ h:ma'); ?>";
        });
    }
}

Учитывая это, и с учетом экземпляров Carbon ваш код представления будет:

@datetime($start) to @datetime($end)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...