Wandelt eine textuelle englische Datums- und Zeitbeschreibung in einen Unix-Zeitstempel um

# strtotime

(PHP 4, PHP 5, PHP 7, PHP 8)

strtotime — Wandelt eine textuelle englische Datums- und Zeitbeschreibung in einen Unix-Zeitstempel um

### Beschreibung

function strtotime(string `$datetime`, ?int `$baseTimestamp` = `null`): int|false

Diese Funktion erwartet eine Zeichenkette mit einem Datum im englischen Datumsformat und versucht, dieses Format in einen Unix-Zeitstempel (die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC) zu übersetzen. Die Angabe wird relativ zum Zeitstempel ausgewertet, der im Parameter `baseTimestamp` übergebenen wurde, oder, falls `baseTimestamp` nicht übergeben wurde, relativ zur aktuellen Zeit. Das Format der Zeichenkette, die das auszuwertende Datum enthält, ist in Unterstützte Datums- und Zeitformate definiert, wobei einige Feinheiten zu beachten sind. Es wird dringend empfohlen, sich dort mit allen Details vertraut zu machen.

Warnung

Der Unix-Zeitstempel, den diese Funktion zurückgibt, enthält keine Informationen über Zeitzonen. Um Berechnungen mit Datums- und Zeitwerten durchzuführen, sollte das leistungsfähigere DateTimeImmutable verwendet werden.

Jeder Parameter dieser Funktion verwendet die Standardzeitzone, es sei denn, im betreffenden Parameter wird eine Zeitzone angegeben. Es ist darauf zu achten, nicht etwa verschiedene Zeitzonen je Parameter zu verwenden, außer es ist beabsichtigt. Die verschiedenen Möglichkeiten, die Standardzeitzone zu definieren, sind date_default_timezone_get() zu entnehmen.

### Parameter-Liste

`datetime`

  Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

`baseTimestamp`

  Der Zeitstempel, der als Basis zur Berechnung relativer Daten verwendet wird.

### Rückgabewerte

Gibt im Erfolgsfall einen Zeitstempel zurück, andernfalls `false`.

### Fehler/Exceptions

Wenn die Zeitzone ungültig ist, wird bei jedem Aufruf einer Datums/Zeit-Funktion ein Fehler der Stufe `E_WARNING` erzeugt. Siehe auch date_default_timezone_set()

### Changelog

Version | Beschreibung
--- | ---
8.0.0 | `baseTimestamp` ist nun nullable (akzeptiert den `null`-Wert).

### 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';
if (($timestamp = strtotime($str)) === false) {
echo "Die Zeichenkette ($str) ist fehlerhaft.";
} else {
echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}`

### Anmerkungen

> Hinweis:

> "Relatives" Datum bedeutet in diesem Fall auch, dass nicht angegebene Komponenten des Datums-/Zeitstempels unverändert aus dem `baseTimestamp` übernommen werden. Das heißt, dass `strtotime('February')` am 31. Mai 2022 als `31 February 2022` interpretiert wird, was zum Zeitstempel `3 March` führt (in einem Schaltjahr wäre es `2 March`). Stattdessen `strtotime('1 February')` oder `strtotime('first day of February')` zu verwenden, würde dieses Problem vermeiden.

> Hinweis:

> Wenn die Angabe der Jahreszahl zweistellig erfolgt, werden Werte von 0-69 den Jahren 2000-2069 zugeordnet, die Werte 70-99 ergeben die Jahreszahlen 1970-1999. Zu möglichen Unterschieden auf 32-Bit-Systemen (mögliche Datumsangaben könnten am 2038-01-19 03:14:07 enden) ist der folgende Hinweis zu beachten.

> Hinweis:

> Der gültige Bereich eines Zeitstempels 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).

> Bei 64-Bit-Versionen von PHP ist der gültige Bereich für Zeitstempel praktisch unendlich groß, da 64 Bit etwa 293 Milliarden Jahre in beide Richtungen darstellen können.

> Hinweis:

> Es ist nicht empfehlenswert, diese Funktion für mathematische Berechnungen zu verwenden. Dafür sollten stattdessen DateTime::add() und DateTime::sub() verwendet werden.

### Siehe auch

- DateTimeImmutable
- DateTimeImmutable::createFromFormat() - Wertet eine Zeitangabe gemäß dem angegebenen Format aus
- Datums- und Zeitformate
- checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
- strptime() - Wertet eine Zeit-/Datumsangabe aus, die mit strftime erzeugt wurde

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open