PHP Maniac

Das PHP Blog für PHP-Profis und alle die es werden wollen

Deutsche Ausgaben mit der PHP date() Funktion

29 April, 2009 (21:52) | Grundlagen, PHP, Server, Tipps und Tricks | Von: PHP Maniac

Die date() Funktion von PHP, welche Timestamps in ein lesbares Datum umwandeln kann, ist sicher jedem PHP Programmierer schon einmal begegnet. Wird hier lediglich ein numerisches Datum oder eine Uhrzeit ausgegeben, so gibt es in der Regel keinerlei Probleme. Ganz anders sieht es schon aus, wenn der Wochentag oder der Monat von PHP ausgeschrieben werden sollen, hier muss man dann oft mit der Englischen Ausgabe vieler PHP Installationen vorlieb nehmen. Abhilfe verschafft ein kleiner Trick, mit dem sich die Ausgabesprache von PHP beliebig verändern kann.

Regionaleinstellungen in PHP

Die Rede ist von setlocale(), mit der sich (temporär) die verwendete Gebietseinstellung von PHP anpassen lässt. Dies wirkt sich dann auch auf die Ausgaben von date() und einigen anderen Funktionen aus. Es werden zwei Parameter erwartet:

setlocale($kategorie, $gebiet);

Das Gebiet muss hierbei als String übergeben werden und die Formatierung ist von PHP vorgegeben. Standardeinstellung ist hier ‚en_EN‘, für eine Umstellung auf eine deutsche Ausgabe, ist hier ‚de_DE‘ einzusetzen. Die Kategorie beschreibt welche Funktionen von PHP auf das neue Gebiet eingestellt werden sollen. In der Regel bietet sich hier die Konstante LC_ALL an, die sämtliche Funktionen auf eine deutsche Ausgabe umstellt. Es existieren allerdings auch einige Möglichkeiten, um die Änderungen auf bestimmte Bereiche zu beschränken:

    * LC_ALL (alle folgenden Werte)
    * LC_COLLATE (Vergleiche auf String-Ebene)
    * LC_CTYPE (Umwandlung und Klassifizierung von Zeichen)
    * LC_MONETARY (Formatierungsinformationen für Zahlen)
    * LC_NUMERIC (Dezimaltrennzeichen)
    * LC_TIME (Zeit und Datum)
    * LC_MESSAGES (Systemmeldungen)

Beispielcode

In der Praxis reicht aber normalerweise die Angabe von LC_ALL oder LC_TIME. Hier noch einmal der komplette Beispielcode um die Ausgabesprache für die date() Funktion umzustellen:

echo date("l, der d F Y", time());
setlocale(LC_ALL, 'de_DE');
echo date("l, der d F Y", time());

Der Beispielcode gibt hierbei den Namen des Wochentags, sowie den Monatsnamen aus. Einmal vor Änderung der Gebietseinstellungen und einmal nachdem die Umstellung auf deutsch erfolgt ist.

Be Sociable, Share!

Kommentare

Kommentar von Katzi
Datum 1. Mai 2009 um 00:05 Uhr

THX!!!

Wer hätte gedacht, dass es so einfach geht!

Schreibe einen Kommentar