Это зависит от формата, в котором вы хотите, чтобы дата отображалась как.
Статический формат даты
Если вы хотите отобразить статический формат, который одинаков для всех локалей (например, ISO 8601 для канала Atom), вы должны использовать date
фильтр Twig :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
Который всегда будет возвращать дату и время в следующем формате:
2014-05-02T08: 55: 41Z
Строки формата, принятые date
фильтром, такие же, как вы использовали бы для функции PHPdate()
. (единственное отличие состоит в том, что, насколько я знаю, вы не можете использовать предопределенные константы, которые можно использовать в PHPdate()
функции )
Локализованные даты (и время)
Однако, поскольку вы хотите отобразить его в браузере, вам, скорее всего, потребуется показать его в удобочитаемом формате, локализованном для языка и местоположения пользователя. Вместо того, чтобы выполнять локализацию самостоятельно, вы можете использовать для этого расширение Intl (которое использует PHP IntlDateFormatter ). Он обеспечивает фильтр, localizeddate
который будет выводить дату и время в локализованном формате.
localizeddate( date_format, time_format [, locale ] )
Аргументы за localizeddate
:
date_format
: Одна из строк формата (см. Ниже)
time_format
: Одна из строк формата (см. Ниже)
locale
: (необязательно) Используйте это, чтобы переопределить настроенную локаль. Не используйте этот аргумент для использования локали по умолчанию, которую можно настроить в конфигурации Symfony.
(есть больше, см. документы для полного списка возможных аргументов)
Для date_format
и time_format
вы можете использовать одну из следующих строк:
'none'
если вы не хотите включать этот элемент
'short'
для самого сокращенного стиля (13.1252 или 15:30 в английском языке)
'medium'
для среднего стиля (12 января 1952 года в английском языке)
'long'
для длинного стиля (12 января 1952 или 3:30:32 вечера в английском языке)
'full'
для полностью определенного стиля (вторник, 12 апреля 1952 года или 15:30:42 по тихоокеанскому времени в английском языке)
пример
Так, например, если вы хотите отобразить дату в формате, эквивалентном February 6, 2014 at 10:52 AM
, используйте следующую строку в шаблоне Twig:
{{ game.gameDate|localizeddate('long', 'short') }}
Однако, если вы используете другую локаль, результат будет локализован для этой локали:
6 februari 2014 10:52
для nl
локали;
6 février 2014 10:52
для fr
локали;
6. Februar 2014 10:52
для de
локали; и т.п.
Как вы видете, localizeddate
не только переводит названия месяцев, но и использует локальные обозначения. Английская нотация ставит дату после месяца, где нотации Голландии, Франции и Германии ставят ее до месяца. Английские и немецкие названия месяцев начинаются с заглавной буквы, тогда как голландские и французские названия месяцев строчные. И немецкие даты имеют точку.
Установка / настройка локали
Инструкции по установке для расширения Intl можно найти в этом отдельном ответе .
{{ game.gameDate|date('Y-m-d H:i:s') }}
для даты и времени. У меня были проблемы с поиском персонажа за минуты.