DateTime Notice: Undefined property

  • Hey,


    ich möchte ein normales Datum sowie eine normale Uhrzeit als DateTime-Objekt haben.

    Habe daher das Datum mit der Uhrzeit konkatentiert und der DateTime-Klasse als Parameter mitgegeben.

    Alles gut soweit.


    Aber passt jetzt auf:

    Wenn ich alles jetzt teste bekomme ich folgende Fehler, weil $datum->date anscheinend keinen Wert hat :


    1. Notice: Undefined property: DateTime::$date in C:\xampp\htdocs\php\projekt\panel\admin\php\diary.php on line 123

    2. Ein Fehler ist aufgetreten: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'datum' cannot be null


    Nun habe ich var_dump() auf $datum angewendet. Dort kommt dies raus: object(DateTime)#2 (3) { ["date"]=> string(26) "2018-04-18 12:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" }

    Wenn ich es jetzt mit den gleichen Werten teste funktioniert alles ohne Probleme. Kaum entferne ich das var_dump() kommt wieder der Fehler.

    Ich bin grad wirklich ratlos.


    Der Codeteil:

    Grüße,

    Stef

  • PHP
    1. $date = '2018-04-18 12:00:00';
    2. $datum = new DateTime($date);
    3. var_dump($datum->date); // Undefined property: DateTime::$date (::date existiert noch nicht)
    4. var_dump($datum); // hier wird wohl intern eine art toString method getriggered. Und die setzt dann ::date
    5. var_dump($datum->date); // ::date ist jetzt vorhanden

    Du solltest besser $datum->format('Y-m-d H:i:s') verwenden.


    EDIT: Dein db Feld `datum` ist sicher vom Typ DATETIME. Dann solltest Du auf jeden fall das db-Format nutzen: Y-m-d H:i:s

  • Guten Morgen,


    okay. Intressant. Ist das nicht ein Fehler der DateTime-Klasse?

    Danke der Info.


    Es funktioniert nun.