Il dépend du format dans lequel vous souhaitez afficher la date.
Format de date statique
Si vous souhaitez afficher un format statique, identique pour toutes les langues (par exemple ISO 8601 pour un flux Atom), vous devriez utiliser le filtre date
de Twig:
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
Cela retournera toujours une date et heure dans le format suivant :
2014-05-02T08:55:41Z
Les chaînes de format acceptées par le filtre date
sont les mêmes que celles que vous utiliseriez pour la fonction date()
de PHP. (la seule différence est que, autant que je sache, vous ne pouvez pas utiliser les constantes prédéfinies qui peuvent être utilisées dans la fonction date()
de PHP)
Dates (et heures) localisées
Cependant, puisque vous voulez l'afficher dans le navigateur, vous voudrez probablement l'afficher dans un format lisible par les humains, localisé en fonction de la langue et de l'emplacement de l'utilisateur. Au lieu de gérer la localisation vous-même, vous pouvez utiliser l'extension Intl Extension pour cela (qui utilise le IntlDateFormatter de PHP). Elle fournit un filtre localizeddate
qui affichera la date et l'heure dans un format localisé.
localizeddate(format_date, format_heure [, locale ] )
Arguments pour localizeddate
:
format_date
: Une des chaînes de format (voir ci-dessous)
format_heure
: Une des chaînes de format (voir ci-dessous)
locale
: (optionnel) Utilisez ceci pour remplacer la locale configurée. Laissez cet argument de côté pour utiliser la locale par défaut, qui peut être configurée dans la configuration de Symfony.
(il y en a plus, voir la documentation pour la liste complète des arguments possibles)
Pour format_date
et format_heure
, vous pouvez utiliser l'une des chaînes suivantes :
'none'
si vous ne voulez pas inclure cet élément
'short'
pour le style le plus abrégé (12/13/52 ou 15h30 dans une locale anglaise)
'medium'
pour le style moyen (12 janv. 1952 dans une locale anglaise)
'long'
pour le style long (12 janvier 1952 ou 15h30min32s dans une locale anglaise)
'full'
pour le style complètement spécifié (mardi 12 avril 1952 après JC ou 15h30min42s PST dans une locale anglaise)
Exemple
Ainsi, par exemple, si vous souhaitez afficher la date dans un format équivalent à 6 février 2014 à 10:52
, utilisez la ligne suivante dans votre template Twig :
{{ game.gameDate|localizeddate('long', 'short') }}
Cependant, si vous utilisez une locale différente, le résultat sera localisé pour cette locale :
6 februari 2014 10:52
pour la locale nl
;
6 février 2014 10:52
pour la locale fr
;
6. Februar 2014 10:52
pour la locale de
; etc.
Comme vous pouvez le constater, localizeddate
ne se contente pas de traduire les noms des mois mais utilise également les notations locales. La notation anglaise place la date après le mois, alors que les notations néerlandaise, française et allemande la placent avant le mois. Les noms des mois en anglais et en allemand commencent par une lettre majuscule, tandis que les noms des mois en néerlandais et en français sont en minuscules. Et les dates en allemand ont un point ajouté.
Installation / configuration de la locale
Les instructions d'installation pour l'extension Intl peuvent être trouvées dans cette réponse séparée.