#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');