Derzeit online: ca. 107 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


PHP

Montag, Dienstag, Mittwoch...

... deutsche Wochentage und Monatsnamen.

Wie bereits bei Datum & Uhrzeit erwähnt, kann PHP auch den Wochentag bzw. den Monatsnamen anzeigen lassen. Jedoch sind das englische Wochentage bzw. Monate (also Monday, Tuesday usw.). Um diese Werte auf Deutsch (oder in jeder beliebigen anderen Sprache) anzeigen zu lassen, gibt es zwei Möglichkeiten. Die erste ist eine Lösung durch PHP selbst, die jedoch auf manchen Systemen zu merkwürdigen Ergebnissen führen kann und erstmal etwas seltsam aussieht, für die zweite Möglichkeit können wir Arrays verwenden.

Die Verwendung von setlocale und strftime

PHP verfügt über eine Funktion namens setlocale, damit kann festgelegt werden, welches Sprach-/Gebietsschema verwendet werden soll. Das lässt sich für verschiedene Fälle anwenden, wir kümmern uns jedoch jetzt nur um die Anpassung für Datum und Zeit. Der Befehl dafür ist ganz kurz:
<?php
setlocale(LC_TIME, "de_DE.utf8");
?>
Danach muss allerdings das Datum mit einer weiteren speziellen Funktion formatiert werden. Diese nennt sich strftime. Die Bezeichnungen für die einzelenen Formatierung sind ähnlich wie bei der Verwendung von date, werden jedoch alle mit einem führenden Prozentzeichen geschrieben. Eine vollständige Liste findest du wie immer auf php.net.

Wollen wir jetzt also den Wochentag auf deutsch ausgeben, sieht das so aus:
<?php
setlocale(LC_TIME, "de_DE.utf8");
echo "Heute ist ";
echo strftime("%A");
echo ".";
?>
Das ergibt dann: Heute ist Mittwoch.

Sofern diese Funktion bei dir Probleme macht oder du Namen verwenden möchtest, die nicht als lokale Namen gesetzt sind, gibt es auch die Möglichkeit mit einem Array zu arbeiten:

Die Verwendung eines Arrays

Die Grundlage zu diesem "Trick" bietet die Möglichkeit, die Nummer des Wochentags ausgeben zu lassen. Dabei beginnt die Nummerierung bei 0 für Sonntag und geht bis 6 für Samstag. Mit diesem Wissen kann man jetzt ein Array machen, in dem diesen Zahlen die richtigen Wochentage zugeordnet werden (da ein Array automatisch bei 0 anfängt, müssen die Werte nicht extra zugewiesen werden).
<?php
$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
?>
Um jetzt den richtigen Tag zu erwischen verwende ich bei der Ausgabe $tage[Nummer des Tages].

Und die Nummer des Tages wird mit der Datumsfunktion ermittelt (da wir date verwenden, müssen wir zunächst die Zeitzone festlegen):
<?php
date_default_timezone_set("Europe/Berlin");
$tag = date("w");
echo $tage[$tag];
?>
Ich lege hier keinen Timestamp fest, da ich das heutige Datum verwenden möchte. Im zweiten Schritt erfolgt direkt die Ausgabe über echo. Das ergibt Mittwoch.

Mit dem gleichen System können jetzt auch die Namen für die Monate festgelegt werden, jedoch darf nicht vergessen werden, dass die Monate nicht mit 0, sondern mit 1 beginnen.

Aus diesem Grund müssen diesem Array die Werte extra zugewiesen werden:
<?php
$monate = array(1=>"Januar",
                2=>"Februar",
                3=>"M&auml;rz",
                4=>"April",
                5=>"Mai",
                6=>"Juni",
                7=>"Juli",
                8=>"August",
                9=>"September",
                10=>"Oktober",
                11=>"November",
                12=>"Dezember");
?>
(das Array ist aus Übersichtlichkeitsgründen so geschrieben - selbstverständlich wäre es auch möglich, alle Werte in eine Reihe zu schreiben).

Jetzt wird wiederum das aktuelle Datum verwendet um den derzeitigen Monat abzufragen und anschließend der Monat ausgegeben.
<?php
$monat = date("n");
echo $monate[$monat];
?>
Das Ergebnis hierzu ist November.

Und das ist das ganze "Geheimnis" hinter einer deutschen Wochentags- bzw. Monatsangabe :-)

Und was schauen wir uns als nächstes an?

Autor: Claudia Unkelbach

=> Weiter
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen