Как преобразовать 2014-06-24T22:33:49.180Z формат в Y-m-d H:i:s в PHP

#php #date #datetime

#php #Дата #дата и время

Вопрос:

Я получил Fatal error: Call to a member function format() on a non-object сообщение об ошибке, когда попытался использовать формат для строки даты, преобразованной в формате json 2014-06-24T22:37:13.151Z (в частности, из new Date() )

 $objData->myCodeCreateDate="2014-06-24T22:39:34.652Z"
$date = DateTime::createFromFormat('j-M-Y', $objData->myCodeCreateDate);
echo $date->format('Y-m-d H:i:s');
 

Комментарии:

1. Кажется совершенно очевидным, что проблема в том, что вы используете пустую строку в качестве даты для форматирования, нет? Я думаю $objData->myCodeCreateDate="" , что должно быть $objData->myCodeCreateDate = date();

2. @SharkoMirkwood Спасибо, что указали, на самом деле я забыл вставить дату. Вот оно. Мои извинения

Ответ №1:

Это похоже на то, как Amazon отправляет обратно свою временную метку, которая соответствует этому формату по времени UTC:

Y-m-dTH:i:s.uZ .

Вы можете изменить свой createFromFormat формат на указанный выше, и он должен работать.

Вот пример с вашими данными:

 $date_string = "2014-06-24T22:37:13.151Z";
$date_object = DateTime::createFromFormat('Y-m-dTH:i:s.uZ', $date_string);
echo $date_object->format('Y-m-d H:i:s');