(PHP 5 >= 5.3.0, PHP 7, PHP 8)
date_parse_from_format — Ermittelt Informationen über das angegebene Datum anhand des angegebenen Formats
Gibt ein assoziatives Array mit detaillierten Informationen über das angegebene Datum und die angegebene Uhrzeit zurück.
format
Zur Verwendung des Parameters format
siehe die
Dokumentation von
DateTimeImmutable::createFromFormat(). Es gelten die
gleichen Regeln.
datetime
Eine Zeichenkette, die Datum und Uhrzeit angibt.
Gibt ein assoziatives Array mit detaillierten Informationen über das angegebene Datum und die angegebene 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.
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
folgende Beispiel zeigt eine solche Warnung.
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. Das folgende Beispiel zeigt einen solchen Fehler.
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.
Wenn der Parameter datetime
NULL-Bytes enthält,
wirft diese Funktion einen ValueError.
Version | Beschreibung |
---|---|
8.0.21, 8.1.8, 8.2.0 |
Wenn in datetime NULL-Bytes übergeben werden,
wird nun ein ValueError geworfen; vorher
wurde dies stillschweigend ignoriert.
|
7.2.0 |
Das Element zone des zurückgegebenen Arrays stellt
nun Sekunden statt Minuten dar und das Vorzeichen ist umgekehrt. Zum
Beispiel wird aus -120 nun 7200 .
|
Beispiel #1 date_parse_from_format()-Beispiel
<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [year] => 2009 [month] => 1 [day] => 6 [hour] => 13 [minute] => 0 [second] => 0 [fraction] => [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => 1 [zone_type] => 1 [zone] => 3600 [is_dst] => )
Beispiel #2 date_parse_from_format()-Beispiel mit Warnungen
<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);
echo "Anzahl der Warnungen: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\tAn Position {$position}: {$message}\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Anzahl der Warnungen: 1 An Position 23: The parsed time was invalid
Beispiel #3 date_parse_from_format()-Beispiel mit Fehlern
<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);
echo "Anzahl der Fehler: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\tAn Position {$position}: {$message}\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Anzahl der Fehler: 3 An Position 15: A two digit hour could not be found An Position 19: Data missing