Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

strtotime

Datums- und Zeit-Funktionen

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


    Parameter-Liste:
NameBeschreibung
timeEin Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.
nowDer Timestamp, der als Basis zur Berechnung relativer Daten verwendet wird.

    Rückgabewerte:
Gibt im Erfolgsfall einen Timestamp, andernfalls FALSE zurück. Vor PHP 5.1.0 gab die Funktion -1 im Fehlerfall zurück.

    Beschreibung:
Diese Funktion erwartet einen String mit einem Datum im Englischen Datumsformat und versucht, dieses Format in einen Unix-Timestamp (die Anzahl der Sekunden seit dem 01. Januar 1970 00:00:00 UTC) zu übersetzen. Die Angabe wird relativ zum im now-Parameter übergebenen Timestamp oder der aktuellen Zeit, sofern now nicht übergeben wurde, ausgewertet.

Die Funktion verwendet, sofern diese verfügbar ist, die TZ-Umgebungsvariable um den Timestamp zu berechnen. Seit PHP 5.1.0 gibt es einfachere Wege, die zu verwendende Zeitzone festzulegen, die mit allen Datums- und Zeitfunktionen verwendet werden soll. Ausführlichere Erklärungen dazu finden Sie auf der date_default_timezone_get()-Manualseite.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Hinweis:
Hinweis:

Wenn die Jahreszahlenangabe zweistellig erfolgt, werden Werte zwischen 00 und 69 auf die Jahre 2000 bis 2069 gemappt, die Werte 70-99 ergeben die Jahreszahlen 1970-1999. Beachten Sie die folgenden Anmerkungen bezüglich der Unterschiede auf 32-Bit-Systemen (das Datum endet möglicherweise am 2038-01-19 03:14:07).
Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 UTC und Tue, 19 Jan 2038 03:14:07 UTC. (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 1. Januar 1970 auf Windowssystemen, einigen Linuxdistributionen und einigen anderen Betriebssytemen nicht funktionieren. Die PHP-Versionen 5.1.0 und neuer heben diese Beschränkung auf.
Für 64 Bit Versionen von PHP ist der gültige Bereich für Timestamps praktisch unendlich gross, da 64 Bit etwa 293 Milliarden Jahre in beide Richtungen darstellen können.
Daten im Format m/d/y oder d-m-y werden unterschieden anhand des genutzten Trennzeichens: Wenn ein Slash (/) genutzt wird, wird das Amerikanische Format m/d/y angenommen; wird stattdessen ein Minus (-) oder ein Punkt (.) genutzt, wird das Europäische Format d-m-yangenommen.
Um Mehrdeutigkeiten zu vermeiden sollten am besten ISO 8601 Daten (YYYY-MM-DD) genutzt werden oder aber die Methode DateTime::createFromFormat() verwendet werden.

    Fehler:
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()


    Siehe auch:
Gibt neues DateTime-Objekt formatiert nach dem Format angegeben
 
Prüft ein Gregorianisches Datum auf Gültigkeit
 
Analysiert einen Zeit / Datum mit strftime generiert
 

Ein strtotime() - Beispiel:


Eingabe:
<?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";
?>


Beschreibung:
Um Mehrdeutigkeiten zu vermeiden sollten am besten ISO 8601 Daten (YYYY-MM-DD) genutzt werden oder aber die Methode DateTime::createFromFormat() verwendet werden.

Beschreibung:
Version Beschreibung
5.3.0 Vor PHP 5.3.0 war 24:00 keine korrekte Formatierung, daher gab strtotime() FALSE zurück.
5.2.7 Wird in PHP 5 vor Version 5.2.7 ein gegebenes Vorkommen eines angegebenen Wochentages eines Monats abgefragt, der der erste Tag des Monats ist, wird eine Woche zum zurückgegebenen Zeitstempel addiert. Dieser Fehler ist in Version 5.2.7 und später korrigiert.
5.1.0 Im Fehlerfall wird FALSE statt -1 zurückgegeben.
5.1.0 Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.
5.0.2 In PHP 5 bis 5.0.2 werden "now" und andere relative Zeitangaben fälschlicherweise ab dem Zeitpunkt des Datumswechsels berechnet. Dieses Verhalten unterscheidet sich von anderen Versionen, die diese Angaben in die korrekte aktuelle Zeit übersetzen.
5.0.0 Die Angabe von Mikrosekunden ist erlaubt, wird aber ignoriert.
4.4.0 In PHP-Versionen vor 4.4.0 wird "next" fälschlicherweise als +2 interpretiert. Eine einfache Lösung für dieses Problem ist, explizit +1 zu verwenden.
strtotime() - Beispiel 2: Test auf Fehler


Eingabe:
<?php
$str = 'Not Good';

// vor PHP 5.1.0 wuerden Sie -1 statt false als Rueckgabewert erhalten
if (($timestamp = strtotime($str)) === false) {
    echo "Die Zeichenkette ($str) ist nicht parsebar.";
} else {
    echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>


Ausgabe:


Beschreibung:
Version Beschreibung
5.3.0 Vor PHP 5.3.0 war 24:00 keine korrekte Formatierung, daher gab strtotime() FALSE zurück.
5.2.7 Wird in PHP 5 vor Version 5.2.7 ein gegebenes Vorkommen eines angegebenen Wochentages eines Monats abgefragt, der der erste Tag des Monats ist, wird eine Woche zum zurückgegebenen Zeitstempel addiert. Dieser Fehler ist in Version 5.2.7 und später korrigiert.
5.1.0 Im Fehlerfall wird FALSE statt -1 zurückgegeben.
5.1.0 Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.
5.0.2 In PHP 5 bis 5.0.2 werden "now" und andere relative Zeitangaben fälschlicherweise ab dem Zeitpunkt des Datumswechsels berechnet. Dieses Verhalten unterscheidet sich von anderen Versionen, die diese Angaben in die korrekte aktuelle Zeit übersetzen.
5.0.0 Die Angabe von Mikrosekunden ist erlaubt, wird aber ignoriert.
4.4.0 In PHP-Versionen vor 4.4.0 wird "next" fälschlicherweise als +2 interpretiert. Eine einfache Lösung für dieses Problem ist, explizit +1 zu verwenden.
Datums- und Zeit-Funktionen