Eine zentrale Funktion ist die Funktion date()
. Diese erhält die folgenden Parameter:
$format
: Legt das Format fest, womit Datum und Zeit ausgegeben werden.$timestamp
: Der Zeitstempel der umgeformt werden soll. Wird dieser Wert festgelegt, so wird der aktuelle Zeitstempel verwendet.
Für $format
wird eine Zeichenkette angegeben, die beschreibt, wie die Ausgabe aufgebaut werden soll.
Folgende Zeichen sind für die Angabe des Monatstages erlaubt:
d
: Der Tag des Monats mit führender Null, falls dieser einstellig ist.j
: Tag des Monats, jetzt ohne führende Null.D
: Wochentag, gekürzt auf drei Buchstaben.l
: Ausgeschriebener Wochentag.N
: Numerische Repräsentation des Wochentages gemäß ISO-8601:1
steht für Montag bis7
steht für Sonntag.w
: Numerischer Tag einer Woche0
steht für Sonntag bis6
steht für Samstag.z
: Der Tag im Jahr. Die Zählung beginnt ab0
.
Für die Angabe der Woche im Jahr kann folgendes Zeichen genutzt werden:
W
: Die Wochennummer im Jahr
Für die Angabe des Monats im Jahr stehen wieder mehr Zeichen zur Verfügung:
F
: Monatsname ausgeschriebenM
: Monatsname auf drei Buchstaben gekürzt.m
: Monat als Zahl. Ist die Zahl einstellig, so wird eine0
vorangestellt.n
: Monatszahl ohne führende Nullent
: Anzahl der Tage des angegebenen Monats
Jahre können wie folgt dargestellt werden:
L
: Handelt es sich um ein Schaltjahr?Y
: Vierstellige Jahreszahly
: Zweistellige Jahreszahl
Für Zeitangaben stehen ebenso Zeichen zur Definition des Ausgabeformats zur Verfügung. Stunden und Minuten sowie Sekunden werden wie folgt dargestellt:
g
: Stunde im 12-Stunden-Formath
: Stunde im 12-Stunden-Format mit führender0
, wenn einstellig.G
: Stunde im 24-Stunden-FormatH
: Stunde im 24-Stunden-Format mit führender0
, wenn einstellig.a
: am oder pmA
: AM oder PMi
: Minuten mit führenden Nullens
: Sekunden mit führenden Nullen
Auch die Zeitzone kann mit ausgegeben werden:
e
: ZeitzonenbezeichnerT
: Abkürzung der ZeitzoneI
: Ist das aktuelle Datum in Sommerzeit dargestellt?O
: Zeitunterschied zur GMT in StundenP
: Zeitunterschied zur GMT in Stunden und Minuten
Ebenso ist es möglich über ein Kürzel eine komplette Datumszeitangabe abzurufen:
c
: ISO 8601 Datum beispielsweise2016-10-26T12:15:00+02:00
r
: RFC 2822 Datum beispielsweiseWed, 26 Oct 2016 12:15:00 +0200
Mit Hilfe von getdate()
lassen sich die Informationen, die von date()
in einen String verpackt werden, auch in einem Array beziehen. Es existiert auch die Möglichkeit den String in lokaler Landessprache auszugeben. Dies ist mit strftime()
möglich. Allerdings sind hier die Angaben in der Kodierung des $format
-Strings anders. Leider lassen sich solche landessprachlich kodierten Strings nicht mehr zurück umformen. Für englischsprachige Zeichenketten existiert jedoch die Funktion strtotime()
.
Die Funktion strtotime()
kann zwei Parameter übergeben bekommen, wobei der zweite Parameter optional ist. Die Parameter sind die folgenden:
$time
: Ein String im englischen Format mit einer Zeitangabe.$now
: Die Zeitangabe des ersten Parameters wird relativ zu dieser Zeit ausgewertet.
Warum ein Startzeitpunkt gesetzt werden kann, wird klar, wenn man sieht, dass auch relative Zeitangaben gesetzt werden können:
"+1 week"
: spult um eine Woche ab dem Startzeitpunkt vor."last Thursday"
: geht auf den letzten Donnerstag zurück.
Zur Generierung eines Zeitstempels kann auch eine einfachere Funktion genutzt werden. Die Funktion mktime()
nimmt nacheinander die Parameter für Stunde, Minute, Sekunde, Monat, Tag, Jahr und ob diese Zeitangabe in Sommerzeit ist, an. Dabei kann bei jedem Parameter die Übergabe der Parameter beendet werden. Nicht vorhandene Parameter werden durch die aktuelle Systemzeit ersetzt. Genauso wie strtotime()
gibt die Funktion mktime()
den passenden Unix-Zeitstempel zurück.