Dieser Abschnitt beschreibt alle verschiedenen Formate in einem
BNF-ähnlichen Format, das der Parser von
DateTimeImmutable, DateTime,
date_create_immutable(),
date_create(), date_parse() und
strtotime() versteht. Die Formate sind in Abschnitte
gegliedert. In den meisten Fällen können Formate aus verschiedenen
Abschnitten durch Leerzeichen, Komma oder Punkt getrennt in derselben
Zeichenkette für Datum und Uhrzeit verwendet werden. Für jedes der
unterstützten Formate werden ein oder mehrere Beispiele sowie eine
Beschreibung des Formats angegeben. Bei Formatzeichen in einfachen
Anführungszeichen wird nicht zwischen Groß- und Kleinschreibung
unterschieden ('t'
könnte t
oder
T
sein), bei Zeichen in doppelten Anführungszeichen wird
zwischen Groß- und Kleinschreibung unterschieden ("T"
ist
nur T
).
Die Formatierung von DateTimeImmutable- und DateTime-Objekten wird in der Dokumentation zur Methode DateTimeInterface::format() beschrieben.
Es sollten ein paar allgemeine Regeln beachtet werden.
false
zurück, und
DateTimeImmutable::__construct() löst eine Ausnahme aus.
Es gibt eine Möglichkeit, zu prüfen, ob ein ungültiges Datum oder eine ungültige Uhrzeit angegeben wurde:
<?php
$res = date_parse("2015-09-31");
var_dump($res["warnings"]);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(1) { [11] => string(27) "The parsed date was invalid" }
Es ist bereits möglich, die Grenzfälle zu berücksichtigen, aber dafür muss DateTimeImmutable::createFromFormat() mit dem korrekten Format verwendet werden.
<?php
$res = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
var_dump($res);
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
object(DateTimeImmutable)#1 (3) { ["date"]=> string(26) "2015-10-04 17:24:43.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" }