ProcessWire - Dates

Aus Wikizone
Version vom 5. Dezember 2018, 19:34 Uhr von Steff (Diskussion | Beiträge) (→‎Unformatiertes Datum)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ein Datum kann an verschiedenen Stellen auftauchen und wird nicht immer gleich gespeichert.

Seiten haben ein created Date und ein modified Date.

Außerdem gibt es einen Fieldtype für Daten. Dieser speichert das Datum als String.

DateTime Field datetime field is a Y-m-d H:i:s on database side

Snippets[Bearbeiten]

Unformatiertes Datum[Bearbeiten]

ProcessWire gibt das Datum mit der Funktion getUnformatted("fieldname") das Datum als Timestamp zurück. Dies entspricht etwa der PHP Funktion strtotime()

$month = date("F", $page->getUnformatted("date")); // where date is your fieldname

Locale setzen[Bearbeiten]

In der config.php kann man die Sprache für die PHP Ausgabe setzen, so dass PHP Monatsnamen und Wochentage in der richtigen Sprache ausgibt. Achtung das hat nichts mit dem Sprachhandling über das language Modul zu tun.

Bei installiertem Language Support die Sprachausgabe im Modul setzen die Angabe in der config funktioniert dann nicht mehr.

Die dritte Möglichkeit ist die Ausgabe direkt im Template zu regeln. Das kann mit PHP Methoden erfolgen.

Siehe auch PHP - Date

config.php <syntaxhighlight lang="php">

$config->timezone = 'Europe/Berlin';
setlocale(LC_ALL, 'de_DE.UTF-8');

</syntaxhighlight

And finally use this to output the date in template:

echo strftime("%e %B %Y", $page->getUnformatted("date"));