删除 var_dump 时日期时间出错

Error with dateTime when I remove var_dump

我通过 json 获得格式为 dd/mm/yyyy 的日期,但要保存在 mysql 数据库中,它需要在 yyyy/mm/dd 中,所以我必须转换它:

var_dump($json);

public 'data' => string '27/08/2018' (length=10)

当我 运行 这个代码片段时:

if(isset($json->data) && $json->data !== '' && !is_null($json->data))
{
    $dt = DateTime::createFromFormat('d/m/Y', $json->data);
    var_dump($dt);
    $parts = explode(' ', $dt->date);
    if(count($parts)>=1)
        $this->Objeto->data = $parts[0];

    var_dump($this->Objeto->data);
}

我的 var_dump'2018-08-27' (length=10),这是预期的结果。但是当我删除 var_dump($dt) 时,它返回以下错误:

Notice: Undefined property: DateTime::$date in C:\wamp64\www\learning\controller\ControllerNotification.php

为什么我删除 var_dump 时会发生这种情况?我该如何解决这个问题?

var_dump($dt);为运行时的结果:

 object(DateTime)[8]
      public 'date' => string '2018-08-27 12:55:44.000000' (length=26)
      public 'timezone_type' => int 3
      public 'timezone' => string 'America/Sao_Paulo' (length=17)

您需要 format() 改为:

if(isset($json->data) && $json->data !== '' && !is_null($json->data)) {
    $dt = DateTime::createFromFormat('d/m/Y', $json->data);
    $this->Objeto->data = $dt->format('Y/m/d h:i:s');
}