2011-10-19 183 views
0

我尝试在PHP中使用DateTime并使用diff方法来查找时间戳与当前时间之间的时间差。但PHP给了我错误的区别。任何人都可以指出我的代码出了什么问题吗?谢谢!计算时间差异

PHP代码

function time() { 
    $now = new DateTime; 
    $later = new DateTime('2011-10-17 07:08:00'); 
    $interval = $now->diff($later); 
    echo $now->format('y m d'); 
    echo "<br>"; 
    echo $later->format('y m d'); 
    echo "<br>"; 
    echo $interval->format('%a'); 
} 

输出

11 10 19 
11 10 17 
6015 

的区别是明显的2天后,但我得到6015天!

回答

2

你在做$now->diff($now);,应该是$now->diff($later)

+0

很好的接收!可悲的是我被困在PHP 5.2上尝试这段代码:(致命的错误http://codepad.org/aHVVr065 – DhruvPathak

+0

谢谢!我纠正它,现在它仍然给6015作为差异! – Nyxynyx

+2

echo $ interval-> format('%a ');更改为echo $ interval-> format('%d'); – aslingga

0

书面,结果应该是0,因为 你正在做$现在 - > DIFF($现在)

如果你这样做$ later-> DIFF($现在),你应该得到预期的结果。