Datumszeitfunktionen

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 bis 7 steht für Sonntag.
  • w: Numerischer Tag einer Woche 0 steht für Sonntag bis 6 steht für Samstag.
  • z: Der Tag im Jahr. Die Zählung beginnt ab 0.

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 ausgeschrieben
  • M: Monatsname auf drei Buchstaben gekürzt.
  • m: Monat als Zahl. Ist die Zahl einstellig, so wird eine 0 vorangestellt.
  • n: Monatszahl ohne führende Nullen
  • t: Anzahl der Tage des angegebenen Monats

Jahre können wie folgt dargestellt werden:

  • L: Handelt es sich um ein Schaltjahr?
  • Y: Vierstellige Jahreszahl
  • y: 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-Format
  • h: Stunde im 12-Stunden-Format mit führender 0, wenn einstellig.
  • G: Stunde im 24-Stunden-Format
  • H: Stunde im 24-Stunden-Format mit führender 0, wenn einstellig.
  • a: am oder pm
  • A: AM oder PM
  • i: Minuten mit führenden Nullen
  • s: Sekunden mit führenden Nullen

Auch die Zeitzone kann mit ausgegeben werden:

  • e: Zeitzonenbezeichner
  • T: Abkürzung der Zeitzone
  • I: Ist das aktuelle Datum in Sommerzeit dargestellt?
  • O: Zeitunterschied zur GMT in Stunden
  • P: Zeitunterschied zur GMT in Stunden und Minuten

Ebenso ist es möglich über ein Kürzel eine komplette Datumszeitangabe abzurufen:

  • c: ISO 8601 Datum beispielsweise 2016-10-26T12:15:00+02:00
  • r: RFC 2822 Datum beispielsweise Wed, 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert