60

如何在低于 5.3 的版本中从时间戳创建 DateTime?

在 5.3 中它将是:

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

DateTime 构造函数需要一个字符串,但这对我不起作用

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

4 回答 4

46

PHP 5 >= 5.3.0

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

编辑:setTimestamp

于 2012-03-27T20:22:52.147 回答
32

假设您想要日期和时间,而不仅仅是上一个答案中的日期:

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

不过,必须这样做似乎很愚蠢。

于 2010-12-01T23:09:46.233 回答
15

它不起作用,因为您的 $timeStamp 变量为空。在创建 DateTime 之前尝试回显 $timeStamp 的值,您会看到。如果你运行这个:

new DateTime('@2345234');

你不会得到错误。但是,如果您运行:

new DateTime('@');

它会产生你说它给你的确切错误。您需要进行一些调试并找出 $timeStamp 为空的原因。

于 2010-12-01T23:17:21.473 回答
3

以下作品:

$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);
于 2010-12-01T22:57:41.717 回答