php datetime timestamp php-5.2

Crear DateTime a partir de la marca de tiempo en PHP<5.3



timestamp php-5.2 (4)

¿Cómo se crea un DateTime a partir de la marca de tiempo en versiones inferiores a <5.3?

En 5.3 sería:

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

El constructor de DateTime quiere una cadena, pero esto no funcionó para mí

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


Los siguientes trabajos:

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


No funciona porque tu variable $ timeStamp está vacía. Intenta hacer eco del valor de $ timeStamp justo antes de crear DateTime y verás. Si ejecuta esto:

new DateTime(''@2345234'');

No obtienes un error Sin embargo, si ejecuta:

new DateTime(''@'');

Produce el error exacto que dijiste que te da. Tendrá que hacer algunas depuraciones y descubrir por qué $ timeStamp está vacío.


PHP 5> = 5.3.0

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

Editar: Se agregó la versión correcta de PHP para setTimestamp


Suponiendo que desea la fecha y la hora y no solo la fecha como en la respuesta anterior:

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

Aunque parece bastante tonto tener que hacer eso.