Warum DateTime::createFromFormat() schlägt fehl und gibt einen booleschen Wert zurück in meinem zweiten Beispiel?
Wenn ich dieses das erste ist korrekt erstellt haben, in ein Datum. Der zweite schlägt fehl und eine boolean
und so kann ich nicht formatieren. Ist die Zeit out of range?
//works correctly
$startDate = "2015-05-06 10:49:20.637133";
$start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate);
echo $start->format('m/d/y');
//doesn't work correctly
$startDate = "2015-05-12 15:49:06.821289";
$start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate);
echo $start->format('m/d/y');
Code um den Fehler zu reproduzieren
- Ähnliches problem: stackoverflow.com/questions/21257536/... ich glaube aber nicht, das Problem ist das gleiche
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die
h
zu einem großenH
, seit die kleine ist 12-Stunden-format und das big one ist das 24-Stunden-format.Sehen Sie alle Formate, in die Handbuch. Und ein Zitat von dort:
Bedeutet jetzt deinen code nicht, denn es gibt keine 15 im 12-Stunden-format.
Überprüfen
DateTime::getLastErrors()
:Hour can not be higher than 12
ist ein ziemlich guter Hinweis 🙂Zusätzlich zu den anderen Antworten, für standard-Formate verstanden, die von
DateTime
Sie nicht brauchen, um erstellen aus einer format: