PHP Snippets
Das aktuelle Datum auf der Homepage in deutsch anzeigen
Wenn der Sever die setlocale Funktion nicht unterstützt wird trotz dieses Befehls das Datum in englisch ausgegeben. Da wir das nicht wollen zeige ich hier eine Methode wie man sich trotzdem das Datum in deutsch anzeigen lassen kann.
Beispiel: Samstag, 19 Mai 2012Beschäftigen wir uns zunächst einmal mit dem Code:
<?php
$tage = array("Sonntag","Montag","Dienstag","Mittwoch",
"Donnerstag","Freitag","Samstag");
$tag = date("w");
$monate = array(1=>"Januar",
2=>"Feber",
3=>"März",
4=>"April",
5=>"Mai",
6=>"Juni",
7=>"Juli",
8=>"August",
9=>"September",
10=>"Oktober",
11=>"November",
12=>"Dezember");
$monat = date("n");
echo $tage [$tag];
echo date(', j ');
echo $monate [$monat];
echo date(' Y');
?>
Wie euch sicher aufgefallen ist benutzen wir hier die date Funktion. Die Anzeigemöglichkeiten der date Funktion unterscheidensich von strftime. Deshalb habe ich die Parameter weiter unten aufgeführt.
Zuerst erzeugen wir für die Wochentage ein Array. Dabei werden den Wochentage die Werte 0 bis 7 zugewiesen, wobei 0 für Sonntag und 7 für Samstag steht. Da ein Array immer mit 0 beginnt brauchen wir den Tagen nicht extra noch die jeweilige Nummer zu zuweisen. Danach wird mit der Funktion date und "w" die Nummer des jeweiligen Wochentages ausgelesen.
Mit dem Monat verfahren wir ähnlich. Auch hier wird ein Array erzeugt. Da die Monate aber mit 1 und nicht mit 0 beginnen müssen wir jedem Monat eine Nummer zuweisen. Danach wird dann mit date und "n" der jeweilige Monat ermittelt.
Jetzt müssen wir nur noch mit echo das Datum in der von uns gewählten Formatierung ausgeben lassen.
Mir ist auch klar das hier mehrere Wege zum Ziel führen aber ich finde auf diese Weise ist es php Anfängern am besten zu erklären. Man soll den Code ja nicht nur per Copy & Paste übernehmen sondern auch verstehen was hier gemacht wurde.
Anzeige Parameter der date Funktion:
- a Kleingeschrieben: Ante meridiem und Post meridiem am oder pm
- A Großgeschrieben: Ante meridiem und Post meridiem AM oder PM
- B Swatch-Internet-Zeit 000 bis 999
- c ISO 8601 Datum (hinzugefügt in PHP 5) 2004-02-12T15:19:21+00:00
- d Tag des Monats, 2-stellig mit führender Null 01 bis 31
- D Tag der Woche gekürzt auf drei Buchstaben Mon bis Sun
- F Monat als ganzes Wort, wie January oder March January bis December
- g 12-Stunden-Format, ohne führende Nullen 1 bis 12
- G 24-Stunden-Format, ohne führende Nullen 0 bis 23
- h 12-Stunden-Format, mit führenden Nullen 01 bis 12
- H 24-Stunden-Format, mit führenden Nullen 00 bis 23
- i Minuten mit führenden Nullen 00 bis 59
- I (großes i) Fällt ein Datum in die Sommerzeit 1 bei Sommerzeit, ansonsten 0.
- j Tag des Monats ohne führende Nullen 1 bis 31
- l (kleines 'L') Ausgeschriebener Tag der Woche Sunday bis Saturday
- L Schaltjahr oder nicht 1 für ein Schaltjahr, ansonsten 0.
- m Monat als Zahl, mit führenden Nullen 01 bis 12
- M Monatsname mit drei Buchstaben Jan bis Dec
- n Monatszahl, ohne führende Nullen 1 bis 12
- O Zeitunterschied zur Greenwich time (GMT) in Stunden Beispiel: +0200
- r » RFC 2822 formatiertes Datum Beispiel: Thu, 21 Dec 2000 16:01:07 +0200
- s Sekunden, mit führenden Nullen 00 bis 59
- S Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen st, nd, rd oder th. Zur Verwendung mit j empfohlen.
- t Anzahl der Tage des angegebenen Monats 28 bis 31
- T Zeitzoneneinstellung des Rechners Beispiele: EST, MDT ...
- U Sekunden seit Beginn der UNIX-Epoche (January 1 1970 00:00:00 GMT) Siehe auch time()
- w Numerischer Tag einer Woche 0 (für Sonntag) bis 6 (für Samstag)
- W ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag (hinzugefügt in PHP 4.1.0) Beispiel: 42 (die 42 Woche im Jahr)
- Y Vierstellige Jahreszahl Beispiel: 1999 oder 2003
- y Jahreszahl, zweistellig Beispiele: 99 oder 03
- z Der Tag eines Jahres 0 bis 365
- Z Offset der Zeitzone in Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ und für Zeitzone Ost nach UTC immer positiv. -43200 bis 43200
Nicht erkannte Zeichen werden unverändert ausgegeben. Das Z Format gibt beim Gebrauch von gmdate() immer 0 zurück.