Datum/Uhrzeit Funktionen
PHP Manual

mktime

(PHP 4, PHP 5)

mktimeGibt den Unix-Timestamp/Zeitstempel für ein Datum zurück

Beschreibung

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

Gibt den Unix-Timestamp entsprechend der gegebenen Argumente zurück. Dieser Timestamp 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.

Einzelne Argumente können von rechts nach links weggelassen werden. Sie werden dann mit den Werten der lokalen Systemzeit bzw. des lokalen Systemdatums ersetzt.

Anmerkungen

Hinweis:

Seit PHP 5.1 wirft mktime() eine E_STRICT-Notice, wenn die Funktion ohne Argumente aufgerufen wird. Verwenden Sie in diesem Fall stattdessen die time()-Funktion.

Parameter-Liste

hour

Die Stunde.

minute

Die Minute.

second

Die Anzahl der Sekunden nach der Minute.

month

Der Monat.

day

Der Tag.

year

Die Jahreszahl, die zwei- oder vierstellig angegeben werden kann. Werte von 0 bis 69 werden auf 2000-2069 gemappt, Werte von 70 bis 100 auf 1970-2000. Auf Systemen, auf denen time_t ein 32-Bit Signed Integer ist (das sind die meisten der heutigen Systeme), beginnt der gültige Wertebereich für year bei 1901 und endet bei 2038. Allerdings begrenzen PHP-Versionen vor 5.1.0 den Bereich auf einigen Systemen (z.B. Windows) auf 1970-2038.

is_dst

is_dst kann bei Sommerzeit (DST) auf 1 gesetzt werden, der Wert 0 steht für Winter-/Normalzeit und -1 (Standardwert) heißt, dass unbekannt ist, ob gerade Sommer- oder Winterzeit herrscht. Sofern unbekannt, versucht PHP, dies selbst herauszufinden. Das kann zu unerwarteten (aber dennoch korrekten) Ergebnissen führen. Einige Zeitangaben sind ungültig, wenn die automatische Zeitumstellung auf dem System aktiviert ist, auf dem PHP läuft, oder auf dem der Parameter is_dst den Wert 1 hat. Wenn die Sommerzeit (DST) z.B. um 02:00 Uhr aktiviert wird, sind alle Zeitangaben zwischen 02:00 Uhr und 03:00 Uhr ungültig und mktime() gibt einen undefinierten (meist negativen) Wert zurück. Einige Betriebssyteme (z.B. Solaris 8) nehmen die Zeitumstellung um Mitternacht vor, so dass die Zeitangabe 0:30 als 23:30 des vorherigen Tages interpretiert wird.

Hinweis:

Seit PHP 5.1.0 gilt dieses Parameter als veraltet und wird nicht mehr zur Verwendung empfohlen. Verwenden Sie daher die neuen Features zum Handling von Zeitzonen.

Rückgabewerte

mktime() gibt den zu den übergebenen Argumenten passenden Unix-Timestamp zurück. Wenn die Argumente ungültig sind, gibt die Funktion FALSE zurück (vor PHP 5.1 wurde dann -1 zurückgegeben).

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Changelog

Version Beschreibung
5.3.0 mktime() wirft nun eine E_DEPRECATED-Notice, wenn der is_dst verwendet wird.
5.1.0 Der Parameter is_dst wurde als veraltet markiert. Die Funktion gibt nun im Fehlerfall statt -1 FALSE zurück. Die Funktion wurde dahingehend gefixt, dass sie für Jahr, Monat und Tag auch den Wert 0 entgegennimmt.
5.1.0 Wenn ohne Argumente aufgerufen, wirft mktime() eine E_STRICT-Notice. Verwenden Sie stattdessen die Funktion time().
5.1.0

Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.

Beispiele

Beispiel #1 Einfaches mktime()-Beispiel

<?php
// Setzt die zu verwendende Standardzeitzone. Verfügbar seit PHP 5.1
date_default_timezone_set('UTC');

// Gibt aus: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

// Gibt etwas aus wie: 2006-04-05T01:02:03+00:00
echo date('c'mktime(123452006));
?>

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(00012321997));
echo 
date("M-d-Y"mktime(0001311997));
echo 
date("M-d-Y"mktime(000111998));
echo 
date("M-d-Y"mktime(0001198));
?>

Beispiel #3 Letzter Tag des nächsten 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 "Letzter Tag im Februar 2000 ist der 29."

<?php
$letzterTag 
mktime(000302000);
echo 
strftime("Letzter Tag im Februar 2000 ist der %d."$letzterTag);
$letzterTag mktime(0004, -312000);
echo 
strftime("Letzter Tag im Februar 2000 ist der %d."$letzterTag);
?>

Anmerkungen

Achtung

Vor PHP 5.1.0 wurden negative Timestamps von keiner bekannten Windowsversion oder anderen Betriebssystemen unterstützt. Daher war der Bereich gültiger Jahresangaben auf Werte zwischen 1970 und 2038 beschränkt.

Siehe auch


Datum/Uhrzeit Funktionen
PHP Manual