Dipende dal formato in cui si desidera visualizzare la data.
Formato data statico
Se si desidera visualizzare un formato statico, che è lo stesso per tutte le versioni locali (ad esempio ISO 8601 per un feed Atom), è necessario utilizzare il date
filtro Twig :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
Che restituirà sempre un datetime nel seguente formato:
2014-05-02T08: 55: 41Z
Le stringhe di formato accettate dal date
filtro sono le stesse utilizzate per la date()
funzione di PHP . (l'unica differenza è che, per quanto ne so, non è possibile utilizzare le costanti predefinite che possono essere utilizzate nella date()
funzione PHP )
Date (e orari) localizzati
Tuttavia, poiché vuoi renderlo nel browser, probabilmente vorrai mostrarlo in un formato leggibile dall'uomo, localizzato per la lingua e la posizione dell'utente. Invece di fare tu stesso la localizzazione, puoi usare l' estensione Intl per questo (che utilizza IntlDateFormatter di PHP ). Fornisce un filtro localizeddate
che genererà la data e l'ora utilizzando un formato localizzato.
localizeddate( date_format, time_format [, locale ] )
Argomenti per localizeddate
:
date_format
: Una delle stringhe di formato (vedi sotto)
time_format
: Una delle stringhe di formato (vedi sotto)
locale
: (opzionale) Usalo per sovrascrivere le impostazioni locali configurate. Lascia questo argomento fuori per usare la locale predefinita, che può essere configurata nella configurazione di Symfony.
(ce ne sono altri, vedere i documenti per l'elenco completo dei possibili argomenti)
Per date_format
e time_format
puoi usare una delle seguenti stringhe:
'none'
se non vuoi includere questo elemento
'short'
per lo stile più abbreviato (13/12/52 o 15:30 in un locale inglese)
'medium'
per lo stile medio (12 gennaio 1952 in un locale inglese)
'long'
per il lungo stile (12 gennaio 1952 o 15:30:32 in un locale inglese)
'full'
per lo stile completamente specificato (martedì 12 aprile 1952 d.C. o 15:30:42 PST in un locale inglese)
Esempio
Quindi, ad esempio, se vuoi visualizzare la data in un formato equivalente a February 6, 2014 at 10:52 AM
, usa la seguente riga nel tuo modello Twig:
{{ game.gameDate|localizeddate('long', 'short') }}
Tuttavia, se si utilizza una locale diversa, il risultato verrà localizzato per quella locale:
6 februari 2014 10:52
per il nl
locale;
6 février 2014 10:52
per il fr
locale;
6. Februar 2014 10:52
per il de
locale; eccetera.
Come puoi vedere, localizeddate
non solo traduce i nomi dei mesi ma utilizza anche le notazioni locali. La notazione inglese indica la data successiva al mese, dove le notazioni olandesi, francesi e tedesche la inseriscono prima del mese. I nomi dei mesi in inglese e tedesco iniziano con una lettera maiuscola, mentre i nomi dei mesi in olandese e francese sono in minuscolo. E le date tedesche hanno un punto aggiunto.
Installazione / impostazione della locale
Le istruzioni di installazione per l'estensione Intl sono disponibili in questa risposta separata .
{{ game.gameDate|date('Y-m-d H:i:s') }}
per data e ora. Ho avuto problemi a trovare il personaggio per minuti.