PHP Locale-Probleme mit Apache

marneus

Registered User
Moin zusammen,

nachdem es mich nie wirklich gestört hat, mosert nun zurecht ein Kunde von mir, dass die Monatsnamen bei der Ermittlung des Datums mittels date() und unix timestamp bei ihm alle in Englisch ausgegeben werden. Also wollte ich "mal eben"
PHP:
setlocale(LC_ALL, 'de_DE');
in seinem Skript hinzufügen, stellte aber fast, dass das genau null Auswirkungen hatte.

Zuerst einmal habe ich mittels
Code:
locale -a | grep de_DE
folgende Ausgabe erhalten:
Code:
de_DE
de_DE@euro
de_DE.utf8
Daraufhin änderte ich den PHP-Code in
PHP:
setlocale (LC_ALL, 'de_DE', 'de_DE@euro', 'de_DE.utf8');
wiederrum ohne Auswirkungen. Ein Test mittels
PHP:
$lang = setlocale (LC_ALL, 'de_DE', 'de_DE@euro', 'de_DE.utf8');
echo $lang;
liefert mir "de_DE" als Ergebnis. Nichtsdestotrotz sind die Monatsangaben immer noch in Englisch.

Nutze ich nun strftime() funktioniert die Umwandlung in die deutsche Sprache. Möchte mich mal jemand aufklären, woran das liegt und wie ich setlocale() auf für die date() Funktion nutzen kann?

Besten Dank im Vorraus!
 
dass die Monatsnamen bei der Ermittlung des Datums mittels date() und unix timestamp bei ihm alle in Englisch ausgegeben werden.

http://de.php.net/manual/de/function.date.php said:
...
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten Sie die Funktionen setlocale() und strftime() benutzen.
...
Dein Kunde sollte mal Dokumentationen lesen lernen...

Typischer Fall von RTFM.
 
Versuch's mal hiermit:

setlocale (LC_ALL, 'German_Germany.1252');

Ich kenne diese Sprach-Problematic von Apache auf Windoof...
 
Das könnte schon gar nicht gehen, weil lt. der Auflistung von
Code:
locale -a
gar kein Symlink für den von Dir genannten String gibt.

Die Lösung hat elias geposted. date() liefert immer das englische Datum. strftime() hat das Problem gelöst.
 
Back
Top