date
Новое в версии 1.1: Поддержка часовых поясов добавлена в Twig 1.1.
Новое в версии 1.5: Поддержка формата даты по умолчанию добавлена в Twig 1.5.
Новое в версии 1.6.1: Поддержка часового пояса по умолчанию добавлена в Twig 1.6.1.
Новое в версии 1.11.0: Введен ложный параметр для часового пояса в Twig 1.11.0
Фильтр date форматирует дату в соответствии с заданным форматом:
{{ post.published_at|date("m/d/Y") }}
Спецификатор формата такой же, как поддерживается функцией date, за исключением случаев, когда отфильтрованные данные имеют тип DateInterval, в этом случае формат должен соответствовать DateInterval::format.
Фильтр date принимает строки (они должны быть в формате, поддерживаемом функцией strtotime), экземпляры DateTime или экземпляры DateInterval. Например, чтобы отобразить текущую дату, отфильтруйте слово «now»:
{{ "now"|date("m/d/Y") }}
Чтобы экранировать слова и символы в формате даты, используйте \\ перед каждым символом:
{{ post.published_at|date("F jS \\a\\t g:ia") }}
Если значение, переданное фильтру date, является null, оно вернет текущую дату по умолчанию. Если вместо текущей даты требуется пустая строка, используйте оператор тернарного условия:
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}
Если формат не указан, Twig использует формат по умолчанию: F j, Y H:i. Этот параметр по умолчанию можно изменить, вызвав метод setDateFormat() на экземпляре расширения core. Первый аргумент — это формат даты по умолчанию, а второй — формат интервалов дат по умолчанию:
$twig = new \Twig\Environment($loader);
$twig->getExtension('\Twig\Extension\CoreExtension')->setDateFormat('d/m/Y', '%d days');
// before Twig 1.26
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
Часовой пояс
По умолчанию дата отображается с применением часового пояса по умолчанию (указанного в php.ini или объявленного в Twig — см. ниже), но вы можете переопределить его, явно указав часовой пояс:
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}
Если дата уже является объектом DateTime и вы хотите сохранить его текущий часовой пояс, передайте false в качестве значения часового пояса:
{{ post.published_at|date("m/d/Y", false) }}
Часовой пояс по умолчанию также можно установить глобально, вызвав setTimezone():
$twig = new \Twig\Environment($loader);
$twig->getExtension('\Twig\Extension\CoreExtension')->setTimezone('Europe/Paris');
// before Twig 1.26
$twig->getExtension('core')->setTimezone('Europe/Paris');
Аргументы
-
format: Формат даты -
timezone: Часовой пояс даты
© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/1.x/filters/date.html