PHP Date Function: Convert to String mit anderen Datumsangaben

Mit der Funktion mktime lassen sich aus mehreren Einzelkomponenten zusammengestellte Datumsangaben generieren. Mktime liefert als Rückgabewert einen int-Wert (integer), welcher den zu einem individuell eingestellten Datum den zugehörigen Timestamp repräsentiert. Als Parameter erwartet mktime bis zu sieben optionale Parameter, die in vorgegebener Reihenfolge angegeben werden können. Diese Parameter sind allesamt vom Typ int und geben die den Timestamp definierende Werte für die Stunde, Minute, Sekunde, Monat, Tag und das Jahr – in genau dieser Reihenfolge – an.

Der letzte Parameter der Funktion gibt an, ob bei der Zeitangabe die Sommerzeit oder die Winterzeit berücksichtigt werden soll (der Parameter wird mit 1 angegeben) oder nicht (0). Standardmäßig wird -1 für „unknown” angenommen, was dazu führt, dass die Berechnung nach den Vorgaben der Webserver-Konfiguration erfolgt (is_dst = 1). Seit PHP 5.1.0 darf dieser Parameter nicht mehr angegeben werden. Zeitkomponenten, die nicht angegeben wurden, führen zu einer Default-Belegung, die sich aus den aktuellen Datums- und Zeitangaben ergeben. Werden also nur die ersten beiden Angaben (Stunde und Minute) angegeben, so liefert mktime einen Timestamp für die angegebene Stunde und Minute des aktuellen Tages. Die durch date in Strings konvertierten Timestamps des unteren Scripts werden – zur Formatierung mit HTML-Code gespickt – auf der aufgerufenen Internetseite ausgegeben.

<?php
    // Timestamp für den heutigen Tag zur Uhrzeit 22:55 Uhr
    // Stunde und Minute wird angegeben; der Rest wird durch einen aktuellen
    // Timestamp vorgegeben
    echo date ('l d.m.Y, H:i:s', mktime (22, 55)) . '<br>';
    // Angabe der kompletten Zeit
    echo date ('l d.m.Y, H:i:s', mktime (18, 30, 0)) . '<br>';
    // Zusätzlich angegebene Monat und Tag (1. Januar)
    echo date ('l d.m.Y, H:i:s', mktime (0, 0, 0, 1, 1)) . '<br>';
    // Und jetzt mit einer Jahresangabe
    echo date ('l d.m.Y, H:i:s', mktime (0, 0, 0, 1, 1, 2000)) . '<br>';

    // Vorsicht bei einem nicht existierenden Datum
    // Den 31.02.2008 gab es nicht (in diesem Jahr hatte der Februar 29 Tage)
    // Generiert wird der Timestamp für den 31. Tag nach dem 1. Februar
    // Analog geschieht dies auch bei Monaten, die nur 30 Tage haben. Hier
    // wird stets der 1. des Folgemonats angenommen.
    echo date ('l d.m.Y, H:i:s', mktime (0, 0, 0, 2, 31, 2008)) . '<br>';
?>

Wednesday 11.12.2024, 22:55:12
Wednesday 11.12.2024, 18:30:00
Tuesday 01.01.2008, 00:00:00
Saturday 01.01.2000, 00:00:00
Sunday 02.03.2008, 00:00:00

PHP Date Time Beispiele: Rechnen mit Datums- und Zeitangaben

Aufgrund der Tatsache, dass mktime die angegebenen Parameter auf den realen Kalender umrechnet, ist es auch durch entsprechende Anpassung von Datum- und Zeitinformationen möglich, über die Funktion mktime – und unter Verwendung von Variablen zur Zwischenspeicherung von Werten – einfache Berechnungen durchzuführen. Auf diese Weise lassen sich Fristen errechnen oder andere auf ein Datum bezogene Fragen – etwa welcher Wochentag an einem bestimmten Datum ist – klären. Folgende Beispiele zeigen, wie Sie mit Hilfe von date und der Funktion mktime derartige Berechnungen programmieren können. Die Ausgabe der errechneten Zeit-Informationen erfolgt auch hier wieder mit echo.

<?php
    // Bestimmtes Datum als Startpunkt für weitere Berechnungen über den Timestamp
    // festlegen.
    $ts = mktime (0, 0, 0, 11, 6, 2008);
    // Teilkomponenten des gesetzten Datums extrahieren
    $jahr = date ('Y', $ts);
    $monat = date ('m', $ts);
    $tag = date ('d', $ts);
    // Ausgabe des ermittelten Datums, von dem die folgenden Berechnungen aus gehen
    echo 'Ausgangsdatum: ' . date ('l d.m.Y', $ts) . '<br>';

    // Fristen nach einem bestimmten Tag errechen
    // 14 Tage nach dem aktuellen Datum
    echo 'In 14 Tagen haben wir folgendes Datum: ' . date ('l d.m.Y', mktime (0, 0, 0, $monat, $tag + 14, $jahr)) . '<br>';
    // 4 Wochen nach dem Termin
    echo '4-Wöchige Frist: ' . date ('l d.m.Y', mktime (0, 0, 0, $monat, $tag + 28, $jahr)) . '<br>';

    // Gleicher Tag im nächsten Jahr ist welcher Wochentag?
    echo 'Nächstes Jahr ist dieser Tag ein: ' . date ('l', mktime (0, 0, 0, $monat, $tag, $jahr + 1)) . '<br>';
?>

Ausgangsdatum: Thursday 06.11.2008
In 14 Tagen haben wir folgendes Datum: Thursday 20.11.2008
4-Wöchige Frist: Thursday 04.12.2008
Nächstes Jahr ist dieser Tag ein: Friday

<?php
    // Uhrzeit, die als Grundlage für die folgenden Berechnungen dienen, festlegen
    $ts = mktime (13, 30, 0);
    // Teilkomponenten der festgelegten Zeit auslesen und in Variablen speichern
    $stunde = date ('H', $ts);
    $minute = date ('i', $ts);
    $sekunde = date ('s', $ts);
    // Ausgabe des ermittelten Datums, von dem die folgenden Berechnungen aus gehen
    echo 'Ausgangszeit: ' . date ('H:i:s', $ts) . '<br>';

    // Einige Kombinationen zur Berechnung der Zeit (time)
    echo 'Zeit nach 30 Minuten: ' . date ('H:i:s', mktime ($stunde, $minute + 30, $sekunde)) . '<br>';
    echo '12 Stunden später: ' . date ('H:i:s', mktime ($stunde + 12, $minute, $sekunde)) . '<br>';
    echo 'Nach 4000 Sekunden: ' . date ('H:i:s', mktime ($stunde, $minute, $sekunde + 4000)) . '<br>';
?>

Ausgangszeit: 13:30:00
Zeit nach 30 Minuten: 14:00:00
12 Stunden später: 01:30:00
Nach 4000 Sekunden: 14:36:40

¬ Tutorials



¬ Insolvenzrecht