Zależy to od formatu, w jakim ma być wyświetlana data.
Statyczny format daty
Jeśli chcesz wyświetlić format statyczny, który jest taki sam dla wszystkich ustawień narodowych (na przykład ISO 8601 dla kanału Atom), powinieneś użyć date
filtru Twiga :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
Co zawsze zwróci datę / godzinę w następującym formacie:
2014-05-02T08: 55: 41Z
Ciągi formatów akceptowane przez date
filtr są takie same, jak dla funkcji PHPdate()
. (jedyną różnicą jest to, że o ile mi wiadomo, nie można używać predefiniowanych stałych, które mogą być używane w date()
funkcji PHP )
Zlokalizowane daty (i godziny)
Ponieważ jednak chcesz wyrenderować go w przeglądarce, prawdopodobnie będziesz chciał pokazać go w formacie czytelnym dla człowieka, zlokalizowanym dla języka i lokalizacji użytkownika. Zamiast samodzielnej lokalizacji możesz użyć do tego rozszerzenia Intl (które korzysta z IntlDateFormatter PHP ). Zapewnia filtr, localizeddate
który wyświetli datę i godzinę przy użyciu zlokalizowanego formatu.
localizeddate( date_format, time_format [, locale ] )
Argumenty za localizeddate
:
date_format
: Jeden z ciągów formatu (patrz poniżej)
time_format
: Jeden z ciągów formatu (patrz poniżej)
locale
: (opcjonalnie) Użyj tego, aby zastąpić skonfigurowane ustawienia narodowe. Pozostaw ten argument, aby użyć domyślnych ustawień regionalnych, które można skonfigurować w konfiguracji Symfony.
(jest więcej, zobacz dokumentację, aby uzyskać pełną listę możliwych argumentów)
For date_format
i time_format
możesz użyć jednego z następujących ciągów:
'none'
jeśli nie chcesz dołączyć tego elementu
'short'
dla najbardziej skróconego stylu (13.12.2016 lub 15:30 w języku angielskim)
'medium'
dla średniego stylu (12 stycznia 1952 r. w języku angielskim)
'long'
na długi styl (12 stycznia 1952 lub 15:30:32 w języku angielskim)
'full'
dla całkowicie określonego stylu (wtorek, 12 kwietnia 1952 r. lub 15:30:42 PST w języku angielskim)
Przykład
Na przykład, jeśli chcesz wyświetlić datę w formacie równoważnym do February 6, 2014 at 10:52 AM
, użyj następującego wiersza w szablonie Twig:
{{ game.gameDate|localizeddate('long', 'short') }}
Jeśli jednak użyjesz innego ustawienia narodowego, wynik zostanie zlokalizowany dla tych ustawień regionalnych:
6 februari 2014 10:52
dla nl
lokalizacji;
6 février 2014 10:52
dla fr
lokalizacji;
6. Februar 2014 10:52
dla de
lokalizacji; itp.
Jak widać, localizeddate
nie tylko tłumaczy nazwy miesięcy, ale także korzysta z lokalnych notacji. Notacja angielska umieszcza datę po miesiącu, a notacja holenderska, francuska i niemiecka przed miesiącem. Nazwy miesięcy w języku angielskim i niemieckim zaczynają się od dużej litery, natomiast nazwy miesięcy w języku niderlandzkim i francuskim są małe. Do niemieckich dat dołączona jest kropka.
Instalacja / ustawienie ustawień regionalnych
Instrukcje instalacji dla rozszerzenia Intl można znaleźć w tej osobnej odpowiedzi .
{{ game.gameDate|date('Y-m-d H:i:s') }}
dla daty i godziny. Przez kilka minut miałem problemy ze znalezieniem postaci.