PHP Handbuch
Zurück |  | Weiter

# date

(PHP 3, PHP 4 , PHP 5)

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. Mit anderen Worten ausgedrückt: der Parameter Timestamp ist optional und falls dieser nicht angegeben wird, wird der Wert der Funktion time() angenommen.

> 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). Unter Windows-Betriebssytemen ist dieser Bereich auf 01-01-1970 bis 19-01-2038 beschränkt.

> Anmerkung: 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 zum Beispiel MySQL's UNIX_TIMESTAMP Funktion.

Tabelle 1. Die folgenden Zeichen werden im Parameter Formaterkannt

Format Zeichen | Beschreibung | Beispiel für Rückgabewerte
--- | --- | ---
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 als mit 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.

Beispiel 1. date() Beispiel

`<?php // Gibt etwas ähnliches zu Wednesday aus echo date("l"); // Gibt etwas ähnliches aus wie: Wednesday 15th of January 2003 05:51:38 AM echo date("l dS of F Y h:i:s A"); // Ausgabe: July 1, 2000 ist ein Saturday echo "July 1, 2000 ist ein " . 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()

`// gibt etwas ähnliches aus wie 'Wednesday the 15th' echo date("l \\t\h\e jS");`

Es ist möglich, date() und mktime() gleichzeitig zu verwenden, um Datumsangaben in der Zukunft/Vergangenheit zu bestimmen.

Beispiel 3. date() und mktime() Beispiele

`<?php $morgen = mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $letztermonat = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $naechstesjahr = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); ?>`

> 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 Bedeutung 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

`<?php
// Angenommen heute ist 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() benutzen.

Siehe auch getlastmod(), gmdate(), mktime(), strftime() und time().

Zurück | Zum Anfang | Weiter
checkdate | Nach oben | getdate