如何在低于 5.3 的版本中从时间戳创建 DateTime?
在 5.3 中它将是:
$date = DateTime::createFromFormat('U', $timeStamp);
DateTime 构造函数需要一个字符串,但这对我不起作用
$date = new DateTime("@$timeStamp");
PHP 5 >= 5.3.0
$date = new DateTime();
$date->setTimestamp($timeStamp);
编辑:为setTimestamp
假设您想要日期和时间,而不仅仅是上一个答案中的日期:
$dtStr = date("c", $timeStamp);
$date = new DateTime($dtStr);
不过,必须这样做似乎很愚蠢。
它不起作用,因为您的 $timeStamp 变量为空。在创建 DateTime 之前尝试回显 $timeStamp 的值,您会看到。如果你运行这个:
new DateTime('@2345234');
你不会得到错误。但是,如果您运行:
new DateTime('@');
它会产生你说它给你的确切错误。您需要进行一些调试并找出 $timeStamp 为空的原因。
以下作品:
$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);