strtotime
(PHP 4, PHP 5, PHP 7)
strtotime — Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
Beschreibung
$time
[, int $now
= time()
] ) : int
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.
Jeder Parameter dieser Funktion verwendet die Standard-Zeitzone, es sei denn eine Zeitzone wird in diesem Parameter angegeben. Es ist darauf zu achten, nicht etwa verschiedene Zeitzonen je Parameter zu verwenden, außer wenn das beabsichtigt ist. Die verschiedenen Möglichkeiten die Standard-Zeitzone zu definieren sind date_default_timezone_get() zu entnehmen.
Parameter-Liste
-
time
-
Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.
-
now
-
Der 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.
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 |
Vor PHP 5.3.0 wurden relative Zeitformate wie
this week, previous week,
last week und next week, die dem
time Argument von strtotime()
übergeben wurden, als 7-Tages-Zeitraum anstatt eines Wochenzeitraums von
Monday bis Sunday interpretiert.
|
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 |
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. |
Beispiele
Beispiel #1 Ein strtotime()-Beispiel
<?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";
?>
Beispiel #2 Test auf Fehler
<?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);
}
?>
Anmerkungen
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).
Hinweis:
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.)
Vor PHP 5.1.0 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.
Für 64 Bit Versionen von PHP ist der gültige Bereich für Timestamps praktisch unendlich groß, da 64 Bit etwa 293 Milliarden Jahre in beide Richtungen darstellen können.
Hinweis:
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-y angenommen. Wird das Jahr allerdings in einem zweistelligen Format angegeben und das Trennzeichen ist ein Minus (-), dann wird das Datum als y-m-d geparst.
Um Mehrdeutigkeiten zu vermeiden sollten am besten ISO 8601 Daten (YYYY-MM-DD) genutzt werden oder aber die Methode DateTime::createFromFormat() verwendet werden.
Hinweis:
Die Verwendung dieser Funktion für mathematische Berechnungen ist nicht zu empfehlen. Es ist besser DateTime::add() und DateTime::sub() in PHP 5.3 und neuer, oder DateTime::modify() in PHP 5.2 zu verwenden.
Siehe auch
- Date and Time Formats
- DateTime::createFromFormat() - Parses a time string according to a specified format
- checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
- strptime() - Parse a time/date generated with strftime
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-strtotime.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.