Forum und email

strtotime

(PHP 4, PHP 5)

strtotime — Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um.

Beschreibung

int strtotime ( string $time [, int $now ] )

Diese Funktion erwartet einen String mit einem Datum im englischen Format und versucht diesen in einen Unix-Timestamp umzuwandeln. Versucht wird dies relativ zu dem Timestamp, den Sie mit now angeben. Fehlt diese Angabe, wird die aktuelle Zeit angenommen. Schlägt die Umwandlung fehl, wird -1 zurückgegeben.

Die Funktion strtotime() verhält sich gemäß der Syntax von GNU Date. Daher sollten Sie einen Blick in die GNU Manual Seite » Date Input Formats werfen. Dort wird die gültige Syntax für time beschrieben.

Example#1 strtotime()-Beispiele:

<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>

Example#2 Fehlerüberprüfung

<?php
$str 
'Nicht gut';
if ((
$timestamp strtotime($str)) === -1) {
    echo 
"Der String ($str) ist falsch.";
} else {
    echo 
"$str == " date('l dS of F Y h:i:s A'$timestamp);
}
?>

Hinweis: Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das sind die Datumsangaben, die dem minimalen und maximalen Wert eines vorzeichenbehafteten 32-bit Integer entsprechen.) Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht funktionieren.