In meinem Modell habe ich folgendes:
%Vor%Ich verwende einen datetime-Picker, um das Start- und Enddatum in folgendem Format einzufügen:
%Vor%Ohne die Sekunden. Wenn ich es so mache, bekomme ich diesen Fehler:
%Vor%Wenn ich die Sekunden einschließe, funktioniert es. Die Sekunden sind für mich nicht wichtig, und ich möchte sie nicht in meine Datumsauswahlfelder aufnehmen. Irgendwie herum, damit ich diese Felder noch als Datumsfelder verwenden kann?
Ihre Datumszeichenfolge und Ihr Datumsformat sind unterschiedlich. Sie müssen die Formatzeichenfolge ändern oder die Datumszeichenfolge so ändern, dass sie übereinstimmen.
Dieser Fehler tritt auf, wenn die createFromFormat
-Funktion von Carbon eine Datumszeichenfolge empfängt, die nicht mit der übergebenen Formatzeichenfolge übereinstimmt. Genauer gesagt kommt dies von der Funktion DateTime::createFromFormat
, weil Carbon nur Folgendes aufruft:
Wenn Ihre Datumszeichenfolge "kürzer" ist als die Formatzeichenfolge wie in diesem Fall:
%Vor%Carbon wird werfen:
InvalidArgumentException in Carbon.php Zeile 425:
Daten fehlen
Wenn Ihre Datumszeichenfolge "länger" ist als die Formatzeichenfolge wie in diesem Fall:
%Vor%Carbon wird werfen:
InvalidArgumentException in Carbon.php Zeile 425:
Nachgestellte Daten
Laut der Dokumentation zu Mutatoren lautet das Standard-Datumsformat: 'Y-m-d H:i:s'
. Die Verarbeitung des Datums findet in der Funktion asDateTime
des Modells . In der letzten Bedingung ist die Funktion getDateFormat
genannt, das ist, wo das benutzerdefinierte Format herkommt. Das Standardformat ist definiert in der Grammar
-Klasse der Datenbank .
Sie müssen sicherstellen, dass die Datumszeichenfolge der Formatzeichenfolge entspricht.
Sie können die Standardformatzeichenfolge wie folgt überschreiben:
%Vor%Es gibt zwei Probleme mit diesem Ansatz:
$dates
-Array des Modells definiert ist. Meine empfohlene Lösung ist, dass das Datumsformat der Standard 'Y-m-d H:i:s'
bleiben sollte und Sie die fehlenden Teile des Datums wie folgt vervollständigen sollten:
Und wenn Sie das Datum verwenden möchten, sollten Sie es formatieren:
%Vor%Natürlich sollten die Felder zu Daten mutiert werden:
%Vor%Sie können das $ dateFormat in Ihrem Modell wie Christian sagt, aber wenn Sie die Felder updated_at und created_at nicht in die Operation einbeziehen möchten, können Sie Ereignisse verwenden, um das datetime-Objekt zu "korrigieren", bevor es in der Datenbank gespeichert wird .
Hier haben Sie das offizielle Dokument: Ссылка
Diese Funktion deaktiviert die Carbon-Emulationen in Datetimes Ссылка
%Vor%Tags und Links php format laravel php-carbon