Function.mktime
Aus PHP-Wiki
mktime — Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
Beschreibung:
Beschreibung
int mktime ([ int $Stunde [, int $Minute [, int $Sekunde [, int $Monat [, int $Tag [, int $Jahr [, int $is_dst ]]]]]]] )
Warnung: Beachten sie die andersartige
Anordnung der Argumente. Diese unterscheidet sich von der
Reihenfolge des Unix-Befehls mktime(). Das ist eine häufige
Fehlerursache in Scripts.
Gibt den Unix Timestamp/Zeitstempel an Hand der gegebenen Argumente
zurück. Der Zeitstempel ist ein long-integer-Wert, der die Anzahl der
Sekunden zwischen der UNIX Epoche (January 1 1970 00:00:00 GMT) und der
angegebenen Zeit 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.
is_dst
kann bei Sommerzeit auf 1 gesetzt
werden. 0 bedeutet Winter-/Normalzeit, -1 (Vorgabewert)
heißt, dass nicht bekannt ist, ob Sommer- oder Winterzeit
herrscht. Falls nicht bekannt ist, ob Sommer- oder Winterzeit
herrscht, 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, worauf PHP läuft, aktiviert ist. Wenn die Zeitumstellung
(DST) z.B. bei 2:00 Uhr vorgenommen wird, sind alle Zeitangaben zwischen
2:00 und 3:00 ungültig und mktime() wird einen
undefinierten Wert (meist negativ) zurückgeben. 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:
is_dst
wurde in 3.0.10. eingeführt.
mktime() ist hilfreich bei Datumsberechnungen
und -prüfungen, da automatisch das korrekte Datum für ungültige
Angaben berechnet wird. So wird in den folgenden Beispielen immer die
Zeichenkette "Jan-01-1998" ausgegeben.
Beispiel #1 mktime() Beispiel
<?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));
?>
Das Jahr
darf zwei- oder vierstellig
angegeben werden. Werte von 0 bis 69 stehen dann für die Jahre 2000 bis
2069, und 70 bis 99 für die Jahre von 1970-1999 (auf Systemen,
die time_t als 32Bit-Integer abbilden, was heutzutage gebräuchlich ist, liegt
der gültige Bereich für den Parameter Jahr
irgendwo
zwischen 1901 und 2038).
Hinweis:
Windows
Negative Timestampwerte werden von keiner uns bekannten Windowsversion
unterstützt. Aus diesem Grund ist der Gültigkeitsbereich für Jahresangaben
auf Werte zwischen 1970 und 2038 eingeschränkt.
Der letzte Tag eines gegebenen Monats kann als der Tag "0" des
nächsten Monats ausgedrückt werden (nicht als der Tag
"-1"). Jedes der folgenden Beispiele gibt die Zeichenkette
"Letzter Tag im Feb. 2000 ist der 29." zurück.
Beispiel #2 Letzter Tag des nächsten Monats
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
?>
Datumsangaben, bei denen das Jahr, der Monat und Tag gleich Null
sind, werden als ungültig angesehen (ansonsten als 30.11.1999, was
nicht gewollt sein kann).
Siehe auch date() und
time().