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 datefiltro 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 datefiltro 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 localizeddateque 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_formate time_formatvocê 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:52para a nllocalidade;
6 février 2014 10:52para a frlocalidade;
6. Februar 2014 10:52para a delocalidade; etc.
Como você pode ver, localizeddatenã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.