(PHP 4, PHP 5, PHP 7, PHP 8)
mktime — Liefert den Unix-Zeitstempel für ein Datum
$hour,$minute = null,$second = null,$month = null,$day = null,$year = nullGibt den Unix-Zeitstempel entsprechend der gegebenen Argumente zurück. Dieser Zeitstempel ist ein Long Integer, der die Anzahl der Sekunden zwischen der Unix-Epoche (01. Januar 1970 00:00:00 GMT) und dem angegebenen Zeitpunkt enthält.
   Jedes optionale Argument, das weggelassen wird oder null ist, wird auf
   den aktuellen Wert des lokalen Datums und der lokalen Uhrzeit gesetzt.
  
    Es ist zu beachten, dass die Argumente in einer seltsamen Reihenfolge
    angeordnet sind: month, day,
    year, und nicht in der sinnvolleren Reihenfolge
    year, month,
    day.
   
Der Aufruf von mktime() ohne Argumente wird nicht unterstützt und führt zu einem ArgumentCountError. time() kann verwendet werden, um den aktuellen Zeitstempel zu erhalten.
hour
       Die Anzahl der Stunden relativ zum Beginn des Tages, der durch
       month, day und
       year bestimmt ist. Negative Werte beziehen sich
       auf die Stunden vor Mitternacht des jeweiligen Tages. Werte größer als
       23 beziehen sich auf die entsprechende Stunde des/der folgenden
       Tages/Tage.
      
minute
       Die Anzahl der Minuten relativ zum Beginn der
       hour. Negative Werte beziehen sich auf die
       Minuten in der vorherigen Stunde. Werte größer als 59 beziehen sich auf
       die entsprechende Minute der folgenden Stunde(n).
      
second
       Die Anzahl der Sekunden relativ zum Beginn der
       minute. Negative Werte beziehen sich auf die
       Sekunden der vorherigen Minute. Werte größer als 59 beziehen sich auf
       die entsprechende Minute der folgenden Minute(n).
      
monthDie Anzahl der Monate relativ zum Ende des vorherigen Jahres. Die Werte 1 bis 12 beziehen sich auf normale Kalendermonate des jeweiligen Jahres. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Monate des vorherigen Jahres in umgekehrter Reihenfolge, sodass 0 Dezember ist, -1 November, usw. Werte größer als 12 beziehen sich auf den entsprechenden Monat des/der folgenden Jahres/Jahre.
dayDie Anzahl der Tage relativ zum Ende des vorherigen Monats. Die Werte 1 bis 28, 29, 30 oder 31 (in Abhängigkeit vom Monat) beziehen sich auf normale Tage im aktuellen Monat. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Tage im vorherigen Monat, sodass 0 der letzte Tag des vorherigen Monats ist, -1 der vorletzte usw. Werte größer als die Anzahl von Tagen im aktuellen Monat beziehen sich auf den entsprechenden Tag in dem/den folgenden Monat(en).
year
       Die Jahreszahl, die zwei- oder vierstellig angegeben werden kann.
       Werte von 0-69 werden den Jahren 2000-2069 zugeordnet, Werte von
       70-100 den Jahren 1970-2000. Auf Systemen, auf denen time_t ein
       32-Bit-Integer mit Vorzeichen ist (das sind die meisten der heutigen
       Systeme), beginnt der gültige Wertebereich für
       year bei 1901 und endet bei 2038.
      
   mktime() gibt den zu den übergebenen Argumenten
   passenden Unix-Zeitstempel zurück oder false, wenn der Zeitstempel nicht
   in einen PHP-Integer passt..
  
| Version | Beschreibung | 
|---|---|
| 8.0.0 | hourist nicht mehr optional. Falls ein
        Unix-Zeitstempel benötigt wird, sollte time()
        verwendet werden. | 
| 8.0.0 | minute,second,month,dayundyearsind nun nullable (akzeptieren dennull-Wert). | 
Beispiel #1 Einfaches mktime()-Beispiel
<?php
// Setzt die zu verwendende Standardzeitzone.
date_default_timezone_set('UTC');
// Gibt aus: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
// Gibt etwas aus wie: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>
Beispiel #2 mktime()-Beispiel
mktime() ist hilfreich bei Datumsberechnungen und -prüfungen, da automatisch das korrekte Datum für Werte außerhalb der gültigen Bereiche berechnet wird. So wird in den folgenden Beispielen immer die Zeichenkette "Jan-01-1998" ausgegeben.
<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Beispiel #3 Letzter Tag eines Monats
Der letzte Tag eines gegebenen Monats kann als Tag "0" des folgenden Monats ausgedrückt werden, nicht jedoch als Tag "-1". Beide folgenden Beispiele ergeben die Zeichenkette "Der letzte Tag im Februar 2000 ist der 29."
<?php
$letzterTag = mktime(0, 0, 0, 3, 0, 2000);
echo 'Der letzte Tag im Februar 2000 ist der ', date('d.', $letzterTag);
$letzterTag = mktime(0, 0, 0, 4, -31, 2000);
echo 'Der letzte Tag im Februar 2000 ist der ', date('d.', $letzterTag);
?>
