Depende do formato em que você deseja que a data seja mostrada.
Formato de data estática
Se você deseja exibir um formato estático, o mesmo para todos os locais (por exemplo, ISO 8601 para um feed Atom), você deve usar o date
filtro do Twig :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
O que sempre retornará uma data e hora no seguinte formato:
2014-05-02T08: 55: 41Z
As strings de formato aceitas pelo date
filtro são as mesmas que você usaria para a date()
função do PHP . (a única diferença é que, até onde eu sei, você não pode usar as constantes predefinidas que podem ser usadas na date()
função PHP )
Datas (e horários) localizados
No entanto, como você deseja renderizá-lo no navegador, provavelmente o mostrará em um formato legível por humanos, localizado para o idioma e o local do usuário. Em vez de fazer a localização, você pode usar a Extensão Intl para isso (que faz uso do IntlDateFormatter do PHP ). Ele fornece um filtro localizeddate
que exibirá a data e a hora usando um formato localizado.
localizeddate( date_format, time_format [, locale ] )
Argumentos para localizeddate
:
date_format
: Uma das cadeias de formato (veja abaixo)
time_format
: Uma das cadeias de formato (veja abaixo)
locale
: (opcional) Use isso para substituir o código do idioma configurado. Deixe esse argumento de fora para usar o código do idioma padrão, que pode ser configurado na configuração do Symfony.
(há mais, consulte os documentos para obter a lista completa de argumentos possíveis)
Para date_format
e time_format
você pode usar uma das seguintes seqüências de caracteres:
'none'
se você não quiser incluir esse elemento
'short'
para o estilo mais abreviado (13/12/52 ou 15:30 em um código de idioma inglês)
'medium'
para o estilo médio (12 de janeiro de 1952 em um código de idioma inglês)
'long'
para o estilo longo (12 de janeiro de 1952 ou 15:30:32 em um código de idioma inglês)
'full'
para o estilo completamente especificado (terça-feira, 12 de abril de 1952 dC ou 15:30:42 pm PST em um código de idioma inglês)
Exemplo
Portanto, por exemplo, se você deseja exibir a data em um formato equivalente a February 6, 2014 at 10:52 AM
, use a seguinte linha no seu modelo Twig:
{{ game.gameDate|localizeddate('long', 'short') }}
No entanto, se você usar um código de idioma diferente, o resultado será localizado para esse código de idioma:
6 februari 2014 10:52
para a nl
localidade;
6 février 2014 10:52
para a fr
localidade;
6. Februar 2014 10:52
para a de
localidade; etc.
Como você pode ver, localizeddate
não apenas traduz os nomes dos meses, mas também usa as notações locais. A notação em inglês coloca a data após o mês, onde as notações em holandês, francês e alemão a colocam antes do mês. Os nomes dos meses em inglês e alemão começam com uma letra maiúscula, enquanto os nomes dos meses em holandês e francês são minúsculos. E as datas alemãs têm um ponto acrescentado.
Instalação / configuração do código do idioma
As instruções de instalação para a extensão Intl podem ser encontradas nesta resposta separada .
{{ game.gameDate|date('Y-m-d H:i:s') }}
para data e hora. Eu tive problemas para encontrar caráter por minutos.