|
|
mktime
Gibt 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
]]]]]]] )
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 Zahl der Stunden relativ zum Beginn des Tages, der durch
month, day und
year bestimmt ist. Negative Werte beziehen sich
auf die Stunde vor Mitternacht des jeweiligen Tages. Werte größer als
23 beziehen sich auf die entsprechende Stunde des/der folgenden Tags/Tage.
-
minute
-
Die Zahl der Minuten relativ zum Beginn der hour.
Negative Werte beziehen sich auf die Minute in der vorherigen Stunde.
Werte größer als 59 beziehen sich auf die entsprechende Minute der
folgenden Stunde(n).
-
second
-
Die Zahl der Sekunden relativ zum Beginn der minute.
Negative Werte beziehen sich auf die Sekunde der vorherigen Minute. Werte
größer als 59 beziehen sich auf die entsprechende Minute der folgenden
Minute(n).
-
month
-
Die Zahl des Monats 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, so dass
0 Dezember ist, -1 November, usw. Werte größer als 12 beziehen sich auf
den entsprechenden Monat des/der folgenden Jahrs/Jahre.
-
day
-
Die Zahl des Tages 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, so dass 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 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.
Hinweis:
Dieser Parameter wurde in PHP 7.0.0 entfernt.
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
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(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 "Letzter Tag im Februar 2000 ist der
29."
<?php $letzterTag = mktime(0, 0, 0, 3, 0, 2000); echo strftime("Letzter Tag im Februar 2000 ist der %d.", $letzterTag); $letzterTag = mktime(0, 0, 0, 4, -31, 2000); 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
- checkdate
- gmmktime
- date
- time
|