Форматирование дат в 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.
  • Поддерживает часовые пояса и локализацию.

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

Быстро чистим таксономии в Drupal

Апрель 24, 2025 г.

Чтобы через админку почистить длинные словари, нужно много времени, даже если вы используете bulk операции. Потому будем чистить их через код. Разберем пример кода: [crayon-6953ace4a2fe8271557990/] Эти две команды удаляют все термины из словаря ...

Читать

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

Июль 21, 2025 г.

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

Читать

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

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

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

Читать

Убираем вставку   в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать
 

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

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



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