—————————————————– Version 2023 ——————————————-
L’article n’étant plus d’actualité, voici une mise à jour rapide :
Il faut à présent utiliser le filtre format_datetime de twig
Pour cela il est nécessaire d’installer
et
Ensuite on peux l’utiliser dans twig sur un objet date pour par exemple afficher « Novembre 2023 »
—————————————————– Version 2018 ——————————————-
Lorsque travaille sous Symfony, avec des templates twig, on peut afficher des dates (généralement stocké coté PHP sous forme de DateTime()) grâce au filtre « date » de la façon suivante :
Mais si l’on veux un affichage textuel en français du type « lundi 22 janvier 2018 » il nous faut utiliser une extension twig.
Pour installer cette extensions (ainsi que d’autres) dans votre projet, il faut lancer la commande composer suivante :
Nous devons ensuite configurer l’extension « intl » qui nous intéresse, dans le fichier de configurations des services :
twig.extension.intl:
class: Twig_Extensions_Extension_Intl
tags:
- { name: twig.extension }
Le filtre « localizeddate » est maintenant utilisable et permet d’afficher la date au format que l’on souhaite, et dans la langue que l’on souhaite (en utilisant par défaut la langue configuré dans notre projet symfony) En voici 2 exemples.
Pour plus d’information veuillez vous référez au documentations suivantes :
http://twig-extensions.readthedocs.io/en/latest/intl.html#localizeddate
http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax
Hélas, « twig/extensions » est dépréciée. Elle a manifestement été remplacée par le composant « Intl », mais dont je n’ai malheureusement pas encore pu comprendre l’utilisation avec twig. Des idées ? Merci pour ce site en toute cas.
@Yorick :
Essaye ceci :
https://twig.symfony.com/doc/2.x/filters/format_datetime.html
Bonjour
Je cherche la même chose pour symfony 5 et je ne trouve pas… vous faites comment? C’est fou, un truc si simple en principe…
Je vous conseille d’utiliser la puissante librarie CARBON https://carbon.nesbot.com/docs/
@Fabrice> ton bonheur se trouvera certainement ici…
https://twig.symfony.com/doc/3.x/filters/format_datetime.html
J’ai moi aussi pas mal galérer avec les dates avec Symfony 4 ou 5.1.
Si vous souhaitez éviter l’installation d’une entesion twig dans composer, il y a la possibilité d’utiliser l’extension Twig qui suit (à placer dans src/Twig/AppExtension.php).
Puis rien de plus simple pour l’utiliser : {{ date|intldate(« YYYY ») }}
setPattern($intlformat);
$output = ucfirst($formatter->format($date));
return $output ;
}
}
Tout simplement :
maDate|date(‘d-m-Y H:i:s’)