2012-09-19 160 views
-2

所以在我的数据库中我有一个日期时间字段,填充了例如2012-09-19 11:20:33。 现在我正在试图获取日期时间。Doctrine2减去两个日期时间

$blabla = $something->getDatetime(); 

之后,我创建一个新的日期时间,表示现在

$now = new \DateTime("now"); 

此后,我想他们减去这样的(但不工作)的时间?

$test1 = strtotime($blabla); 
$test2 = strtotime($now); 
$diff = $test2 - $test1; 
echo $diff; 

我的目标是减去持久日期时间从现在时的数据库......结果应该显示在数秒内使2012-09-19 11点22分22秒 - 2012-09 -19 11:20:22等于120(秒)。

我也尝试将unix时间戳记保存到我的数据库中,但不幸的是字段类型时间戳不存在。

+0

我的问题的“完美”的解决方案是从数据库中日期时间和时间转换现在到UNIX时间戳,然后减去他们......但我真的不能管理它的工作...... – Derp

+0

真的吗?那么对你来说可能是PHP的每个类都有一个手册,例如上面提到的'DateTime'类型:http://php.net/datetime - 我希望你能够自己弄清楚这个函数,如果没有,请告诉我们!顺便说一句,这与Symfony2或Doctrine无关,你可能只是看错了地方。 – hakre

+0

我试着用 - > getTimestamp()...但你看起来很生气,我的好先生...:D – Derp

回答

0

如果你想要在几秒钟内显示的答案,那么就减去时间戳: -

$blabla = $something->getDatetime(); 
$now = new DateTime(); 
$seconds = $now->getTimestamp() - $blabla->getTimestamp(); 
0
$blabla = $something->getDatetime(); 
$now = new \DateTime("now"); 
$diff = $now->diff($blabla); 

请记住,$差异是DateInterval对象的连接必须使用它的方法和属性来获取到最终期望的结果。

+0

我试过了,如你所说... DateTime :: __ construct()期望参数1是字符串,给出的对象 – Derp

+0

也许$ blabla已经一个DateTime对象,所以试试:$ diff = $ now-> diff($ blabla); – JvdBerg

+0

你也可以尝试var_dump($ blabla)来查看它是什么对象。 – JvdBerg