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

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

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

Инициализируем кастомную тему в Drupal

Май 12, 2025 г.

При создании новой темы у вас есть варианты выбора начиная с того, чтобы взять готовую тему (и начать её менять под ваши задачи) до создания новой темы ...

Читать

Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

Июль 26, 2025 г.

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет ...

Читать

Чтение данных из oembed провайдера

Март 11, 2025 г.

В Drupal 10/11 поддержка Oembed провайдеров в ядре (модуль media) позволяет легко и непринуждённо читать данные о медиа прямо из провайдера. Ранее я рассказывал как зарегистрировать oembed для rutube, чтобы иметь возможность оперировать видео контентом ...

Читать
 

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

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



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