date_parse
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
date_parse — Liefert ein assoziatives Array mit detaillierten Informationen zu einem gegebenen Datum/Zeitpunkt
Beschreibung
Wenn über eine bestimmte Gruppe von Elementen keine Informationen gefunden
werden können, werden diese Array-Elemente auf false
gesetzt oder sie
fehlen. Wenn sie benötigt werden, um einen Zeitstempel oder ein
DateTimeImmutable-Objekt aus dieser
datetime
-Zeichenkette zu konstruieren, können
mehrere Felder auf einen anderen Wert als false
gesetzt werden. Die
Beispiele zeigen, wo dies der Fall ist.
Rückgabewerte
Gibt ein Array mit Informationen zu Datum und Uhrzeit zurück.
Das zurückgegebene Array hat Schlüssel für year
,
month
, day
, hour
,
minute
, second
,
fraction
und is_localtime
.
Wenn is_localtime
angegeben ist, gibt
zone_type
den Typ der Zeitzone an. Für Typ
1
(UTC-Offset) werden die Felder zone
und is_dst
hinzugefügt; für Typ 2
(Zeitzonen-Abkürzung) werden die Felder tz_abbr
und
is_dst
hinzugefügt; und für Typ 3
(Zeitzonen-Kennung) werden die Felder tz_abbr
und
tz_id
hinzugefügt.
Wenn relative Zeitelemente in der Zeichenkette
datetime
vorhanden sind, z. B.
+3 days
, dann enthält das zurückgegebene Array ein
untergeordnetes Array mit dem Schlüssel relative
. Dieses
Array enthält dann die Schlüssel year
,
month
, day
, hour
,
minute
, second
und, abhängig von der
übergebenen Zeichenkette, weekday
und
weekdays
.
Das Array enthält die Felder warning_count
und
warnings
. Das erste gibt an, wie viele Warnungen es gab.
Die Schlüssel des Arrays warnings
geben die Positionen
im angegebenen datetime
an, an denen die Warnungen
aufgetreten sind, während die Werte die Warnungen selbst beschreiben.
Das Array enthält auch die Felder error_count
und
errors
. Das erste Feld gibt an, wie viele Fehler
gefunden wurden. Die Schlüssel des Arrays errors
geben
die Positionen im angegebenen datetime
an, an denen
die Fehler aufgetreten sind, während die Werte die Fehler selbst
beschreiben.
Warnung
Die Anzahl der Array-Elemente in den Arrays warnings
und errors
kann kleiner sein als
warning_count
oder error_count
, wenn
die Warnungen bzw. Fehler an derselben Stelle aufgetreten sind.
Fehler/Exceptions
Falls das Datums-/Zeitformat fehlerhaft ist, enthält das Element 'errors'
die Fehlermeldungen.
Beispiele
Beispiel #1
Ein date_parse()-Beispiel mit einer vollständigen
datetime
-Zeichenkette
<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(12) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Die Zeitzonen-Elemente werden nur angezeigt, wenn sie in der angegebenen
datetime
-Zeichenkette enthalten sind. In diesem Fall
gibt es immer ein Element zone_type
und ein paar andere,
die von seinem Wert abhängen.
Beispiel #2 date_parse() mit Zeitzonenkürzel
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(16) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(2)
["zone"]=>
int(0)
["is_dst"]=>
bool(true)
["tz_abbr"]=>
string(3) "BST"
}
Beispiel #3 date_parse() mit Zeitzonenkennung
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(14) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(3)
["tz_id"]=>
string(13) "Europe/London"
}
Wenn eine kürzere datetime
-Zeichenkette ausgewertet
wird, stehen weniger Informationen zur Verfügung. In diesem Beispiel werden
alle Bestandteile der Uhrzeit als false
zurückgegeben.
Beispiel #4 date_parse() mit einer minimalen Zeichenkette
<?php
var_dump(date_parse("June 2nd, 2022"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(12) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
bool(false)
["minute"]=>
bool(false)
["second"]=>
bool(false)
["fraction"]=>
bool(false)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Relative Formate haben
keinen Einfluss auf die Werte, die aus absoluten Formaten gewonnen werden,
sondern werden in das Element "relativ" eingefügt.
Beispiel #5 date_parse() mit relativen Formaten
<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(13) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(6) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(7)
["hour"]=>
int(1)
["minute"]=>
int(0)
["second"]=>
int(0)
}
}
Einige Textbausteine, z. B. Thursday
, setzen den
Zeitanteil der Zeichenkette auf 0
. Wenn
Thursday
an
DateTimeImmutable::__construct() übergeben wird, führt
dies ebenfalls dazu, dass hour, minute, second und fraction auf
0
gesetzt werden. Im folgenden Beispiel wird das
Element year jedoch auf false
belassen.
Beispiel #6 date_parse() mit Nebeneffekten
<?php
var_dump(date_parse("Thursday, June 2nd"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(13) {
["year"]=>
bool(false)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(7) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(0)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["weekday"]=>
int(4)
}
}
Siehe auch
- date_parse_from_format() - Ermittelt Informationen über das angegebene Datum anhand des angegebenen Formats - Ermittelt Informationen über das angegebene Datum anhand des angegebenen Formats
- checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit für die Überprüfung eines gregorianischen Datums
- getdate() - Liefert Datums- und Zeitinformationen