Ответ 1
PHP 5 >= 5.2.0
$date = new DateTime();
$date->setTimestamp($timeStamp);
Как вы создаете 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);