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 1 Antwort
Letzter Beitrag: Mittwoch, 7. Oktober 2009 13:26 von kalle

Hallo auch, da gibt es sicher viele die das machen würden, allerdings deutlich weniger die es auch tatsächlich machen könnten - noch einmal weniger ... » mehr

oh Mann

Hallo erstmals..... also ich kenn mich ja nicht so aus, aber ich denke die Menschheit fliegt auf den Mond, dann müsste es auch eine Lösung für mein ... » mehr

von Dummbazz am Dienstag, 24. Februar 2009 15:11 in PHP - bisher 2 Antworten
Letzter Beitrag: Mittwoch, 25. Februar 2009 11:48 von Dummbazz

Danke für die aufmunternde Worte... ... » mehr

counter auch ohne datenbank?

tach auch, ich habe nach einem besucherzähler gesucht, der auf meiner seite anzeigt, wieviele besucher sich dort aufhalten. allerdings habe ich ... » mehr

von marcel am Montag, 8. Dezember 2008 12:21 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 8. Dezember 2008 13:34 von alm

Hallo, sicher kann die Counter-Klasse so umgeschrieben werden, dass sie auch ohne Datenbankanbindung funktioniert. Allerdings würde das einer neuen ... » mehr

DAten speichern und abfragen

Hallo an Alle! Hoffe, dass ich hier im richtigen Forum bin. Vielleicht kann mir jemand einen Tip geben. Ich möchte auf meiner Webpage ein Formular ... » mehr

von muenchner am Samstag, 12. Juli 2008 18:31 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 14. Juli 2008 08:49 von alm

Hallo, ich bin mir nicht sicher, wie das jetzt gemeint ist! Geht es um die Frage: Sollen die Optionen des Forumlars (die einzelnen Checkboxen) in ... » mehr

Tutorials :: PHP & MySQL - Problem

Hi, zunächsteinmal danke für das Tutorial: ... » mehr

von migges am Montag, 2. Juni 2008 12:05 in PHP - bisher 3 Antworten
Letzter Beitrag: Dienstag, 3. Juni 2008 11:45 von alm

Das mit den Oder-Operatoren wundert mich ein wenig... Welchen Fehler hat der Interpreter an diesen Stellen ausgegeben? Ich habe bislang mit ... » mehr

¬ Tutorials



¬ Insolvenzrecht