ʫ

Sie haben den Artikel erfolgreich in den Warenkorb gelegt.
Was möchten Sie als nächstes tun?

Weiter einkaufen Zur Kasse

Mit PHP strftime und setlocale Datum auf Deutsch darstellen

Bei der Programmierung mit PHP sind gewisse eingebaute Funktionen auf die Standardsprache des Interpreters ausgerichtet, in dem Fall ist das Englisch. Wenn Sie beispielsweise mit einem Datum, Währung, Zahlen etc. mit PHP programmieren, so erhalten Sie englische Überschriften und bei der Arbeit mit Zahlen müssen Sie den Punkt als Trennzeichen entsprechend berücksichtigen.

Wenn Sie eine PHP Anwendung auf Deutsch programmieren, so müssen Sie viele dieser Ausgaben selber abfangen und mit zusätzlichen PHP Funktionen umwandeln, so dass Sie Deutsche Schreibweise hinbekommen. An manchen Stellen können Sie aber generell eine Anweisung treffen, so dass bestimmte Funktionen einer Deutschen Lokalität entsprechend funiktionieren müssen. Dies ist beispielsweise die Ausgabe eines Datums aus einem Unix Timestamp mir der PHP Funktion strftime.

Problemstellung - Datum und Uhrzeit auf Deutsch mit PHP

Angenommen, Sie hätten einen solchten Timestamp - 1342333231. Dies entspricht die Anzahl der Sekunden seit dem 01.01.1970 und ist gleich das Datum 15.07.2012 08:20. Die gängiste Funktion zur Darstellung von Daten ist die PHP date Funktion:

$sTStamp = "1342333231";
echo date("d.m.Y H:i", $sTStamp);
//Ausgabe ist 15.07.2012 08:20

Obiges Beispiel nur Zahlen für die Darstellung des Datums, was OK wäre für alle Lokalitäten. Jedoch müssten Sie manchmal einen Monat mit Namen ausgeben. Wenn Sie das Format von der PHP Funktion date etwas verändern, so erhalten Sie folgendes:

$sTStamp = "1342333231";
echo date("d.F.Y H:i", $sTStamp);
//Ausgabe ist 15.July.2012 08:20

Die Ausgabe ist offensichtlich nicht Deutsch.

Lösung - Datum auf Deutsch mit PHP

Neben der Funktion date, gibt es weitere PHP Funktionen, die Daten repräsentieren, jedoch noch sich an die lokal eingestellte Lokalität orientieren. Eine solche Funktion ist strftime. Wenn Sie die Lokalität nicht einstellen, so sieht die Ausgabe der Funktion so aus (bitte, notieren Sie dass das Format von strftime vom date abweicht):

$sTStamp = "1342333231";
echo strftime("%A, den %d %B %Y %H:%M", $sTStamp);
//Ausgabe ist Sunday, den 15 July 2012 08:20

Komplett nicht deutsch. Nun stellen wir generell ein, am besten ganz am Anfang der PHP Seite, eine lokale Variable ein - LC_TIME. Diese sagt, dass wir bitte in Deutschland sind und die Daten so dargestellt werden müssen.

setlocale(LC_TIME, "de_DE");
//Standard für LC_TIME ist en_US

$sTStamp = "1342333231";
echo strftime("%A, den %d %B %Y %H:%M", $sTStamp);
//Ausgabe ist Sonntag, den 15 Juli 2012 08:20

Fertig! :) Nun brauchen Sie keine Zusatzfunktionen, die Ihre Daten parsen und auf Deutsch darstellen.

û