PHP locale Date: Lokalisierung von Datumsausgaben

Die bisher angesprochenen Beispiele zur Programmierung der Ausgabe von Datumsinformationen sind recht unflexibel was die Ausgabe von Datum und Zeit angeht. Datumsspezifische Informationen, wie die Textbezeichnung von Monat, Tag oder Wochentag, werden hier stets in englischer Sprache ausgegeben. Ist der Programmierer an einer Ausgabe mit deutschen Bezeichnungen dieser Daten interessiert, so bleibt ihm unter Verwendung der Funktion date nur die „händische” Umwandlung dieser Informationen.

Eine andere Möglichkeit eröffnet die Verwendung von setlocale und einer anschließenden Konvertierung in ein String mit der Funktion strftime. Setlocale legt fest, in welcher Sprache die Ausgabe von Datumsinformationenen und gegebenenfalls auch Monetäre Daten oder Zahlen – im englischsprachigen Raum wird etwa der Dezimaltrenner nicht durch ein Komma, sondern durch einen Punkt dargestellt – erfolgen soll. Diese Länderspezifischen Ausgaben werden von bestimmten Funktionen, wie beispielsweise die Funktion strftime, bei der Konvertierung der Daten in Strings berücksichtigt. Als Locale für deutschsprachige Ausgaben verwendet man im Allgemeinen das Locale mit der Bezeichnung „de_DE”.

Die Funktion strftime funktioniert ähnlich wie die Funktion date und erwartet die selben Parameter. Der einzige Unterschied besteht darin, dass die Platzhalter mit einem Prozentzeichen eingeleitet werden und dass die Platzhalter hier anders belegt sind. Im Falle von strftime werden die folgenden Platzhalter unterstützt:

Auch im nun folgenden Script-Beispiel werden Datum und Zeit mit Hilfe der Funktion echo ausgegeben. Das Script stellt nacheinander unterschiedliche Locales ein und erzeugt dann die Ausgabe des eingestellten Datums, welches zuvor durch die Funktion strftime und unter Beachtung des eingestellten Locale in ein String konvertiert wurde. Die Zeilenumbrüche werden durch Ausgabe des dafür vorgesehenen HTML-Code erzeugt, damit nicht alles in einer einzigen Zeile landet.

<?php
    // Datum und Zeit mit dem gewünschten Timestamp vorbelegen
    $ts = mktime (14, 00, 00, 11, 6, 2008);
    // Ausgabe der eingestellten Datum- und Zeit-Informationen nach dem standardmäßig auf
    // dem Webserver eingestellten Locale.
    echo strftime ('%A, %d. %B %Y', $ts) . '<br>';

    // Alle durch Locales definierten Formate zur Datenausgabe auf die deutsche Sprache
    // umstellen, damit beispielsweise Wochentage und Monate künftig nicht mehr auf
    // englisch ausgegeben werden.
    setlocale (LC_ALL, 'de_DE');
    // Im Grunde reicht hier auch folgende Zeile, die nur die Ausgabe von Datum und Zeit
    // auf das gewünschte Locale einstellt:
    // setlocale (LC_TIME, 'de_DE');
    // Allerdings werden in diesem Fall nur Datum und Zeitangaben auf Deutsch ausgegeben,
    // alle anderen Locales werden dagegen nicht angerührt. Man kann allerdings davon
    // ausgehen, dass die Ausgabe von anderen landesspezifischen Daten ebenfalls nach deren
    // Vorgaben erfolgen soll. Schließlich ist es selten gewollt, dass Ausgaben eines Datums
    // nach deutschen Vorgaben, Dezimaltrenner aber nach englischem Maßstab erfolgen sollen.

    // Und nun nocheinmal die Datumsausgabe wie zuvor aber mit dem neu eingestellten Locale.
    echo strftime ('%A, %d. %B %Y', $ts) . '<br>';

    // Weil es so schön war, die gleiche Ausgabe auf Französisch
    // Hier ist allerdings nur die Ausgabe von Datum- und Zeitangaben betroffen, da nur das
    // Locale der Zeitangaben über das Script entsprechend eingestellt wird.
    setlocale (LC_TIME, 'fr_FR');
    echo strftime ('%A, %d. %B %Y', $ts) . '<br>';
?>

Thursday, 06. November 2008
Donnerstag, 06. November 2008
jeudi, 06. novembre 2008

Letzte Posts aus unserem Forum

Wer kennt .....

Hallo erstmal wer kennt von euch einen WEbprogrammieren,desginer der mir eine Seite erstellen kann ,Communityportal sowas in der art wie ... » mehr

von NCWebmaster am Mittwoch, 7. Oktober 2009 00:32 in PHP - bisher 2 Antworten
Letzter Beitrag: Montag, 17. Dezember 2012 16:57 von maharadja

...einen guten Onlineshop für Taufringe? Ich habe bisher Taufringe Direkt gefunden und wollte mal nachhaken, ob der Shop für Taufringe wirklich so ... » mehr

Webentwickler Konferenz in Hamburg

Hallo Zusammen, Am 20./21. Mai findet in Hamburg die erste Developer Conference 2011 statt. Wie der Name bereits verrät, handelt die Konferenz rund ... » mehr

von devcon-hamburg am Dienstag, 12. April 2011 16:50 in PHP - noch nicht beantwortet

bedingte Weiterleitung in Kontaktformularen

Hallo zusammen, ich habe ein kleines Problem: Ich brauche bei der Entwicklung eines Kontaktformulares für eine Website eine bedingte Weiterleitung ... » mehr

von scatha am Donnerstag, 10. März 2011 01:12 in PHP - noch nicht beantwortet

Gesucht: Auslesen einer externen Website

Mein vorhaben ist recht simpel aber ich bin php noob (hoffe das entschuldigt es nen bissl xD) und hab kp wie ichs anfangen soll. Und zwar möchte ich ... » mehr

von HeathenMan am Dienstag, 1. Februar 2011 22:57 in PHP - bisher 1 Antwort
Letzter Beitrag: Donnerstag, 3. Februar 2011 14:43 von alm

Hallo, am einfachsten und kompaktesten kann man das mit einem regulären Ausdruck machen. Einfach mal nach der Funktion preg_match_all suchen und den ... » mehr

Zeilenumbruch in der Bildergalerie-Beschriftung

Hallo, die Bildergalerie mit php und js ist super, jedoch möchte ich gern zu meinen Bildern verschiedene Bemerkungen machen und zwar untereinander, ... » mehr

von Sylma am Mittwoch, 26. Januar 2011 01:13 in PHP - bisher 1 Antwort
Letzter Beitrag: Freitag, 28. Januar 2011 10:16 von alm

Hallo, ich nehme an, dass \n im Beschreibungstext nicht funktioniert aber versuchen kann man es. Ansonsten: Schon mal mit einer UTF-Sequenz ... » mehr

¬ Tutorials



¬ Insolvenzrecht