Форматирование дат в 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 через Paragraphs и Field Group

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

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

Читать

Фильтр по годам во views

Март 19, 2025 г.

Задача проста - есть материалы, у которых есть поле даты (timestamp), нужно вывести кнопки фильтрующие список по годам. Дополнительно задача ...

Читать

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

Апрель 24, 2025 г.

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

Читать

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

Май 12, 2025 г.

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

Читать
 

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

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



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