Подтвердить что ты не робот

Создание DateTime из timestamp в PHP <5.3

Как вы создаете DateTime из метки времени в версиях, меньших, чем < 5,3?

В 5.3 это будет:

$date = DateTime::createFromFormat('U', $timeStamp);

Конструктор DateTime хочет строку, но для меня это не сработало

$date = new DateTime("@$timeStamp");
4b9b3361

Ответ 1

PHP 5 >= 5.2.0

$date = new DateTime();
$date->setTimestamp($timeStamp);

Ответ 2

Предполагая, что вы хотите дату и время, а не только дату, как в предыдущем ответе:

$dtStr = date("c", $timeStamp);
$date = new DateTime($dtStr);

Кажется довольно глупым, что нужно это делать.

Ответ 3

Он не работает, потому что ваша переменная $timeStamp пуста. Попробуйте повторить значение $timeStamp прямо перед созданием DateTime, и вы увидите. Если вы запустите это:

new DateTime('@2345234');

У вас нет ошибки. Однако, если вы запустите:

new DateTime('@');

Он дает точную ошибку, которую вы сказали, что она дает вам. Вам нужно будет выполнить некоторую отладку и выяснить, почему $timeStamp пуст.

Ответ 4

Следующие работы:

$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);