Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами

В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date().

В этой статье разберём основные варианты с примерами, в том числе:

  • использование форматов из админки /admin/config/regional/date-time.
  • получение текущего timestamp;
  • вывод даты в любом формате PHP;
  • локализация с помощью format_date();
  • работа с датами в ISO-формате;

Получение текущего времени в Unix timestamp

Twig в Drupal умеет работать со специальным значением 'now', которое означает текущее время. Чтобы получить timestamp (количество секунд с 1 января 1970 г.), используется формат U:

Это аналог вызова time() в PHP — выведет текущий timestamp.

Форматирование даты с помощью фильтра date

Фильтр date позволяет преобразовать дату или timestamp в строку по любому шаблону, поддерживаемому PHP-функцией date().

Примеры:

Плюсы:

  • Работает «из коробки» в Drupal.
  • Поддерживает все форматы PHP date().

Минусы:

  • Не учитывает языковые локализации (месяцы/дни на русском не появятся автоматически).

Локализованное форматирование с format_date()

Drupal предоставляет функцию format_date(), которая умеет выводить даты с учётом языковых настроек сайта (локализация).

Синтаксис:

  • timestamp — число в секундах (Unix timestamp).
  • type — предустановленный формат (short, medium, long, custom).
  • format — свой шаблон даты (используется только при type = 'custom').
  • timezone — часовой пояс (опционально).

Пример: дата на русском языке

Здесь:

  • 'now'|date('U') — текущий timestamp.
  • 'custom' — говорим, что используем свой формат.
  • 'j F Y' — день без ведущего нуля, полное название месяца, год.
  • ‘Europe/Moscow’ — часовой пояс Москвы.
  • 'ru' — вывод на русском языке (если настроена локализация).

Нужен ли Twig Tweak для работы с датой?

Twig Tweak — это модуль, предоставляющий дополнительные функции и фильтры для работы с Twig. Однако format_date() — это встроенный фильтр Drupal и не требует установки Twig Tweak для работы.

Модуль Twig Tweak может понадобиться для других полезных функций, таких как drupal_view(), file_url(), dpm() и т.д., но для использования format_date() достаточно стандартной установки Drupal.

Работа с датами из поля ноды (ISO 8601 → timestamp)

В Drupal поля даты в Twig-шаблоне могут быть доступны как строки в ISO-формате.

Например:

Для преобразования в читаемую дату (без локализации) подойдет фильтр date, он умеет напрямую работать с ISO-датами:

Здесь конвертация происходит автоматически.

Для локализованного вывода через format_date(), нам нужен timestamp. Превращаем ISO в timestamp с помощью фильтра date('U'):

Использование предустановленных форматов из настроек Drupal

В Drupal есть страница Конфигурация → Региональные настройки → Форматы даты и времени
(/admin/config/regional/date-time), где можно создать собственные именованные форматы даты.

Например, вы можете создать формат:

  • Машинное имя: my_custom_date
  • Формат: l, j F Y (пятница, 8 августа 2025)

После этого его можно использовать в Twig через format_date().

Плюсы:

  • Форматы меняются централизованно в админке, без правки шаблонов.
  • Удобно для мультиязычных сайтов: перевод названий месяцев/дней управляется Drupal.
  • Поддерживает часовые пояса и локализацию.

Мало букафф? Читайте есчо !

Как в шаблоне параграфа получить заголовок родительской ноды

Сентябрь 15, 2025 г.

Иногда возникает задача: в Twig-шаблоне параграфа (paragraph.html.twig) нужно отобразить заголовок материала (ноды), к которому этот параграф прикреплён. Нам не нужно передавать что то дополнительно в шаблон, эти данные могут быть получены из самой ...

Читать

Добавляем кнопку регистрации на форму авторизации

Декабрь 23, 2025 г.

В этой статье мы рассмотрим, как добавить кнопку "Register" в форму авторизации в Drupal, которая будет перенаправлять пользователя на страницу регистрации. ...

Читать

Отключаем страницы терминов таксономии в Drupal

Июль 21, 2025 г.

По умолчанию Drupal генерирует маршруты для каждого термина таксономии. Это означает, что у каждого термина появляется своя страница с URL вида /taxonomy/term/123. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины ...

Читать

Табличное редактирование мультиполей в Drupal через Paragraphs и Field Group

Октябрь 14, 2025 г.

Иногда при работе с Drupal возникает необходимость оформить ввод набора однотипных данных — например, списка характеристик, параметров или цен — не в виде ...

Читать
 

Комментарии к «Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: