2013-07-10 62 views
0

我正在使用DateTime对象运行一个快速测试,以帮助一名在PHP中使用日期相关问题的同事。PHP - DateTime差异()显示两个日期与一年差异的0个月?

出人意料的是,当我运行这段代码:

namespace Tests\DateTime { 
    $date1 = new \DateTime("2013-01-01", new \DateTimeZone("UTC")); 
    $date2 = new \DateTime("2014-01-01", new \DateTimeZone("UTC")); 
    $interval = $date1->diff($date2); 
    print $interval->m; 
} 

我得到0作为返回值。当你用它来衡量同一年内这两个日期之间的差异时,一切正常。 1,2,3,4,5, ..., 11个月与1月至12月的差异。

为什么会发生?

+2

如果你只有几个月,那么应该是 $ monthDiff = $ interval-> y * 12 + interval-> m; –

+0

正是我在找的东西!非常感谢:) –

+0

如果你做var_dump($ interval);一切都会显露出来。 – vascowhite

回答

2

我认为你得到零,因为你只是在几个月内打印差异。您可能希望通过DateInterval::format运行您的间隔。

+0

这是一个很好的方法。我会更多地关注它。谢谢! :) –