Comment créer un DateTime à partir d'un horodatage dans des versions inférieures à <5.3?
En 5.3, ce serait:
$date = DateTime::createFromFormat('U', $timeStamp);
Le constructeur DateTime veut une chaîne, mais cela n'a pas fonctionné pour moi
$date = new DateTime("@$timeStamp");
PHP 5> = 5.3.0
$date = new DateTime();
$date->setTimestamp($timeStamp);
Edit: Ajout correct PHP pour setTimestamp
En supposant que vous voulez la date et l'heure et pas seulement la date comme dans la réponse précédente:
$dtStr = date("c", $timeStamp);
$date = new DateTime($dtStr);
Cela semble assez idiot de devoir faire ça cependant.
Cela ne fonctionne pas car votre variable $ timeStamp est vide. Essayez de faire écho à la valeur de $ timeStamp juste avant de créer le DateTime et vous verrez. Si vous exécutez ceci:
new DateTime('@2345234');
Vous n'avez pas d'erreur. Cependant, si vous exécutez:
new DateTime('@');
Il produit l'erreur exacte que vous avez dit qu'il vous donne. Vous devrez effectuer un débogage et découvrir pourquoi $ timeStamp est vide.
Les oeuvres suivantes:
$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);