Как вы создаете DateTime из метки времени в версиях менее <5.3?
В 5.3 это будет:
$date = DateTime::createFromFormat('U', $timeStamp);
Конструктор DateTime хочет строку, но для меня это не сработало
$date = new DateTime("@$timeStamp");
PHP 5> = 5.2.0
$date = new DateTime(); $date->setTimestamp($timeStamp);
Предполагая, что вы хотите дату и время, а не только дату, как в предыдущем ответе:
$dtStr = date("c", $timeStamp); $date = new DateTime($dtStr);
Кажется довольно глупым, что нужно это делать.
Он не работает, потому что переменная $ timeStamp пуста. Попробуйте повторить значение $ timeStamp прямо перед созданием DateTime, и вы увидите. Если вы запустите это:
new DateTime('@2345234');
Вы не получите сообщение об ошибке. Однако, если вы запустите:
new DateTime('@');
Он дает точную ошибку, которую вы сказали, что она дает вам. Вам нужно будет выполнить некоторую отладку и выяснить, почему $ timeStamp пуст.
Следующие работы:
$dateString = date('Ymd', $timeStamp); $date = new DateTime($dateString);