我通过json以dd / mm / yyyy的格式获取日期,但要保存在mysql数据库中,它需要保存在yyyy / mm / dd中,所以我必须将其转换:
var_dump($json);
public'data'=>字符串'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)
时,它返回以下错误:
注意:未定义的属性:C:\ wamp64 \ www \ learning \ controller \ ControllerNotification.php中的DateTime :: $ date
为什么我删除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)
答案 0 :(得分:2)
您需要改为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');
}