2

我正在使用 Symfony2。从数据库中获取日期时,我需要在我的index.html.php.

当我像这样打印它的显示时:DateTime Object ( [date] => 2012-10-09 13:30:23 [timezone_type] => 3 [timezone] => UTC )

但是当我将 object 转换为 int 时,它会给出错误:$days2 = floor( $entities->getCreationDate() / (60 * 60 * 24));

Notice: Object of class DateTime could not be converted to int**
4

3 回答 3

7

如果要从 DateTime 对象获取整数时间戳,请使用getTimeStamp 方法

$date = new DateTime();
echo $date->getTimestamp();
于 2012-10-09T17:49:57.870 回答
5

我将其添加为第二个答案,因为它与我之前的非常不同。

要在 PHP 中获取两个日期之间的差异,您可能需要考虑使用 PHP 的内置 DateTime 和 DateInterval 类。

以下代码将为您提供创建日期和今天之间的天数差异:

$creationDate = $entity->getCreationDate();
$now = new \DateTime();

$interval = $creationDate->diff($now);

echo "The difference is " . $interval->days . " days.";

关于 DateInterval 的更多文档:http ://www.php.net/manual/en/class.dateinterval.php

于 2012-10-09T15:38:20.303 回答
0

在 Twig 中显示 DateTime 对象的最佳方法是使用 Twig 的内置date函数:

{{ entity.creationDate | date("m/d/Y") }}

您实际上可以使用原生 PHP 函数支持的任何格式strtotime(),因此您可以自定义您希望它的显示方式。以下是您上面引用的实例的一些示例:

{{ entity.creationDate | date("m/d/Y") }}
--> Prints: "10/09/2012"

{{ entity.creationDate | date("Y-m-d") }}
--> Prints: "2012-10-09"

{{ entity.creationDate | date("H:i") }}
--> Prints: "13:30"

有关此 Twig 功能的更多信息:http: //twig.sensiolabs.org/doc/filters/date.html

于 2012-10-09T15:19:00.277 回答