de.comp.lang.php.* FAQ

14.6. Wie kann ich die Datumsausgabe auf Deutsch umstellen?

Antwort von Johannes Frömter

Mit der Funktion setlocale() kann man diverse Länder- und sprachabhängigen Einstellungen vornehmen. Die Sprache wird im Format Sprache_Land bzw. Sprache_Land.Codepage angegeben und ist plattformabhängig; unter Unix/Linux sind zweibuchstabige Länderabkürzungen zu verwenden, also z.B. de_DE für Deutsch/Deutschland oder de_AT für Deutsch/Österreich, Windows dagegen erwartet German_Germany bzw. German_Austria. Die Einstellung für die Kategorie LC_TIME wirkt sich nur auf die Ausgabe von strftime() , nicht jedoch auf date() aus.

<?php
  // Default
  echo strftime('%A, %d. %B %Y', 1009926000);
  // Ausgabe: Wednesday, 02. January 2002

  Linux:   setlocale(LC_TIME, 'de_DE');
  *BSD:    setlocale(LC_TIME, 'de_DE.ISO_8859-1');
  Win:     setlocale(LC_TIME, 'German_Germany');
  echo strftime('%A, %d. %B %Y', 1009926000);
  // Ausgabe: Mittwoch, 02. Januar 2002

  Linux:   setlocale(LC_TIME, 'de_AT');
  *BSD:    setlocale(LC_TIME, 'de_AT.ISO_8859-1');
  Win:     setlocale(LC_TIME, 'German_Austria');
  echo strftime('%A, %d. %B %Y', 1009926000);
  // Ausgabe: Mittwoch, 02. Jänner 2002
?>

Um zu testen, ob ein bestimmter locale-String auf einem System unterstützt wird, kann man den Rückgabewert von setlocale() auswerten:

if (setlocale(...) === false)  // dann hat's nicht funktioniert

Warnung: setlocale() ist nicht thread-safe, d.h. die Einstellungen wirken sich in Multithread-Umgebungen u.U. auch auf andere, parallel laufende Scripte aus!

Valid HTML 4.01! Valid CSS!

14.6. Wie kann ich die Datumsausgabe auf Deutsch umstellen?
http://www.php-faq.de/q/q-datum-deutsch.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team