date -- Formatiert ein(e) angegebene(s) Zeit/Datum
Beschreibung:
string date ( string Format [, int Timestamp])
Gibt einen formatierten String anhand eines vorzugebenden Musters
zurück. Dabei wird entweder der angegebene
Timestamp oder die gegenwärtige lokale
Zeit berücksichtigt, wenn kein Timestamp angegegeben wird.
Anmerkung:
Der gültige Bereich eines Timestamp liegt typischerweise zwischen
Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT.
(Das entspricht den minimalen und maximalen Werten für einen
vorzeichenbehafteten 32-Bit Integer). Auf Windows-Betribssytemen
liegt ist dieser Bereich beschränkt auf 01-01-1970 bis 19-01-2038.
Um einen Timestamp aus aus einem Datums-String zu erzeugen, können Sie
die Funktion strtotime() benutzen. Zusätzlich bieten
einige Datenbanken Funktionen, um Ihre Datumsfromate in Timestamps
umzuwandeln (wie z.B. die MySQL-Funktion UNIX_TIMESTAMP).
Die folgenden Zeichen werden bei der Formatierung erkannt:
a - "am" oder "pm"
A - "AM" oder "PM"
B - Swatch-Internet-Zeit
d - Tag des Monats, 2-stellig mit führender Null: "01" bis "31"
D - Tag der Woche als 3 Buchstaben, z.B. "Fri"
F - Monat als ganzes Wort, z.B "January"
g - Stunde im 12-Stunden-Format, ohne führende Null: "1" bis "12"
G - Stunde im 24-Stunden-Format, ohne führende Null: "0" bis "23"
h - Stunde im 12-Stunden-Format: "01" bis "12"
H - Stunde im 24-Stunden-Format: "00" bis "23"
i - Minuten: "00" bis "59"
I (großes 'i') - "1" bei Sommerzeit, sonst "0"
j - Tag des Monats ohne führende Null: "1" bis "31"
l - (kleines 'L') ausgeschriebener Tag der Woche, z.B. "Friday"
L - boolscher Wert für Schaltjahre: "0" oder "1"
m - Monat: "01" to "12"
M - Monat als 3 Buchstaben, z.B. "Jan"
n - Monat ohne führende Null: "1" bis "12"
O - Zeitdifferenz zur Greenwich Zeit in Stunden (z.B. +0200)
r - Nach RFC 822 formattiertes Datum; z.B.:
"Sun, 7 Oct 2001 14:56:02 +0200" (seit PHP 4.0.4)
s - Sekunden: "00" bis "59"
S - Anhang der englischen Aufzählung, 2 Buchstaben; z.B.:"
"st", "nd", "rd" oder "th"
t - Anzahl der Tage des angegebenen Monats: "28" bis "31"
T - Zeitzoneneinstellung des Rechners, z.B. "EST" oder "MDT"
U - Sekunden seit Beginn der UNIX-Epoche (January 1 1970 00:00:00 GMT)
w - Wochentag numersich, beginnend mit "0" (Sonntag) bis "6" (Samstag)
W - ISO-8601 Wochennummer des Jahres (Woche beginnt mit Montag)
(seit PHP 4.1.0)
y - Jahr als zweistellige Zahl, z.B. "99"
Y - Jahr als vierstellige Zahl, z.B. "1999"
z - Tag des Jahres: "0" bis "365"
Z - Offset der Zeitzone gegen GTM ("-43200" bis "43200") in
Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ
und für Zeitzone Ost nach UTC immer positiv.
Nicht erkannte Zeichen werden unverändert ausgegeben. Das
"Z"-Format gibt beim Gebrauch von gmdate() immer
"0" zurück.
Beispiel 1. date() Beispiel
print (date("l dS of F Y h:i:s A"));
print ("July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000)));
Möchten Sie verhindern, dass ein erkanntes Zeichen im Formatstring
ersetzt wird, sollten Sie dieses Zeichen mit einem vorangestellten
Backslash escapen. Ist das Zeichen mit dem Backslash bereits eine
spezielle Zeichenfolge, müssen Sie diesen Backslash ebenso escapen.
Beispiel 2. Escaping von Zeichen in date()
echo date("l \\t\h\e jS"); // gibt etwas ähnliches aus wie 'Saturday the 8th'
Es ist möglich, date() und
mktime() gleichzeitig zu verwenden, um
Datumsangaben der Zukunft/Vergangenheit herauszufinden.
Anmerkung:
Dieses Vorgehen kann zu verlässlicheren Ergebnissen führen, als simples
Addieren oder Subtrahieren der Anzahl von Sekunden in Tagen oder Monaten
zu einem Timestamp, da Sommer- und Winterzeit berücksichtigt werden.
Es folgen einige Beispiele zur date() Formatierung.
Beachten Sie, dass Sie alle anderen Zeichen escapen sollten, da alle
Zeichen, die im Augenblick eine spezielle Beduetung haben unerwünschte
Resultate liefern. Bei allen weiteren Zeichen kann es durchaus möglich
sein, dass diesen in zukünftigen PHP-Versionen eine Bedeutung zukommt.
Beim escapen sollten Sie darauf achten einfache Anführungszeichen zu
benutzen, damit Zeichenfolgen wie zum Beispiel \n zu keinem
Zeilenumbruch führen.
Beispiel 4.
date() Formatierungen
/* Today is March 10th, 2001, 5:16:18 pm */
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:17 m is month
$today = date("H:i:s"); // 17:16:17
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten
auszugeben, sollten sie die Funktionen
setlocale() und strftime()
nutzen.