Dies hängt vom Format ab, in dem das Datum angezeigt werden soll.
Statisches Datumsformat
Wenn Sie ein statisches Format anzeigen möchten, das für alle Ländereinstellungen gleich ist (z. B. ISO 8601 für einen Atom-Feed), sollten Sie den Twig- date
Filter verwenden :
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
Was immer eine Datums- / Uhrzeitangabe im folgenden Format zurückgibt:
2014-05-02T08: 55: 41Z
Die vom date
Filter akzeptierten Formatzeichenfolgen sind die gleichen, die Sie für die PHP- date()
Funktion verwenden würden . (Der einzige Unterschied besteht darin, dass Sie meines Wissens die vordefinierten Konstanten, die in der PHP- date()
Funktion verwendet werden können, nicht verwenden können. )
Lokalisierte Daten (und Zeiten)
Da Sie es jedoch im Browser rendern möchten, möchten Sie es wahrscheinlich in einem für Menschen lesbaren Format anzeigen, das für die Sprache und den Standort des Benutzers lokalisiert ist. Anstatt die Lokalisierung selbst durchzuführen , können Sie hierfür die Intl-Erweiterung verwenden (die den IntlDateFormatter von PHP verwendet ). Es bietet einen Filter localizeddate
, der Datum und Uhrzeit in einem lokalisierten Format ausgibt.
localizeddate( date_format, time_format [, locale ] )
Argumente für localizeddate
:
date_format
: Eine der Formatzeichenfolgen (siehe unten)
time_format
: Eine der Formatzeichenfolgen (siehe unten)
locale
: (optional) Verwenden Sie diese Option, um das konfigurierte Gebietsschema zu überschreiben. Lassen Sie dieses Argument weg, um das Standardgebietsschema zu verwenden, das in der Symfony-Konfiguration konfiguriert werden kann.
(Weitere Informationen finden Sie in den Dokumenten. Die vollständige Liste der möglichen Argumente finden Sie hier.)
Für date_format
und können time_format
Sie eine der folgenden Zeichenfolgen verwenden:
'none'
Wenn Sie dieses Element nicht einschließen möchten
'short'
für den am meisten abgekürzten Stil (13.12.52 oder 15.30 Uhr in einem englischen Gebietsschema)
'medium'
für den mittleren Stil (12. Januar 1952 in englischer Sprache)
'long'
für den langen Stil (12. Januar 1952 oder 15.30:32 Uhr in einem englischen Gebietsschema)
'full'
für den vollständig spezifizierten Stil (Dienstag, 12. April 1952 n. Chr. oder 15.30:42 Uhr PST in einem englischen Gebietsschema)
Beispiel
Wenn Sie beispielsweise das Datum in einem Format anzeigen möchten, das dem entspricht February 6, 2014 at 10:52 AM
, verwenden Sie die folgende Zeile in Ihrer Twig-Vorlage:
{{ game.gameDate|localizeddate('long', 'short') }}
Wenn Sie jedoch ein anderes Gebietsschema verwenden, wird das Ergebnis für dieses Gebietsschema lokalisiert:
6 februari 2014 10:52
für das nl
Gebietsschema;
6 février 2014 10:52
für das fr
Gebietsschema;
6. Februar 2014 10:52
für das de
Gebietsschema; etc.
Wie Sie sehen können, werden localizeddate
nicht nur die Monatsnamen übersetzt, sondern auch die lokalen Notationen verwendet. In der englischen Notation wird das Datum nach dem Monat angegeben, in den niederländischen, französischen und deutschen Notationen vor dem Monat. Englische und deutsche Monatsnamen beginnen mit einem Großbuchstaben, während niederländische und französische Monatsnamen in Kleinbuchstaben geschrieben sind. Und an deutsche Daten ist ein Punkt angehängt.
Installieren / Einstellen des Gebietsschemas
Installationsanweisungen für die Intl-Erweiterung finden Sie in dieser separaten Antwort .
{{ game.gameDate|date('Y-m-d H:i:s') }}
für Datum und Uhrzeit. Ich hatte minutenlang Probleme, Charakter zu finden.