2013-07-10 64 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

這是一個很好的方法。我會更多地關注它。謝謝! :) –