Aus gesundheitlichen Gründen kann ich diese Seite nicht weiterpflegen, aktualisieren oder euch Support für eure PHP-Probleme anbieten. PHP für dich bleibt aber in seiner aktuellen Form erhalten und funktioniert nach wie vor als Einstieg in die PHP-Welt - gerade, wenn dich technischere Anleitungen bisher immer davon abgehalten haben.
Mehr dazu...
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ä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
Oktober.
Und das ist das ganze "Geheimnis" hinter einer deutschen Wochentags- bzw. Monatsangabe :-)
Und was schauen wir uns als nächstes an?
Autor: Claudia Unkelbach