Drupal 8 - Formatage d'un champ de date dans Twig

Afficher un champ de date peut sembler trivial dans un template Twig sous Drupal 8, mais une difficulté peut se présenter lorsque ce champ doit par exemple être affiché en deux parties. Par exemple pour un type de contenu Événement, il peut arriver qu'on souhaite afficher la date et l'heure de manière différente, alors que ces deux informations proviennent du même champ de date.

Voici trois façons d'afficher des champs Date dans un template Twig (par exemple un template de node). Toutes ces méthodes donneront le même résultat.

Utiliser les paramètres de mise en forme du champ

{{ content.field_event_date }}

Utiliser le filtre date de Twig et un format de date Drupal défini

{{ node.field_event_date.value|date('U')|format_date('event_date') }}

Dans cet exemple, j'ai défini via l'interface Drupal un format de date qui a comme nom machine event_date.

Utiliser le filtre date de Twig

{{ node.field_event_date.value|date('d/m/Y') }}

Autres manipulations possibles avec les dates

Afficher la date de création du contenu

{{ node.getCreatedTime()|format_date('event_date') }}

Comparer la valeur du champ de date avec la date courante

Vérifier si la valeur est dans le passé :

{{ date(node.field_event_date.value) < date() == 1 }}

Vérifier si la valeur est dans le futur :

{{ date(node.field_event_date.value) > date() == 1 }}

 

Étiquettes