2012-05-03 62 views
9

Possible Duplicate:
How to calculate the difference between two dates using PHP?
Date Difference in php?PHP在兩個日期之間的月份差異?

我有一個可變的兩個日期像

$fdate = "2011-09-01" 

$ldate = "2012-06-06" 

現在我需要在它們之間月差。
例如,如果您從明年9月(9月)到明年6月(6月)計算出答案,那麼答案應該是10,結果爲10。
我該如何在PHP中做到這一點?

+1

類似的問題[鏈接](http://stackoverflow.com/questions/2681548/find-month-difference-in-php) – cyberbemon

+1

重複:http://stackoverflow.com/search?q=date +區別+ php – hakre

+1

希望這有助於http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php – nithi

回答

12

date_diff看一看:

<?php 
$datetime1 = date_create('2009-10-11'); 
$datetime2 = date_create('2009-10-13'); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%m months'); 
?> 
+0

我得到錯誤,而運行此...致命錯誤:在第4行調用未定義的函數date_diff()在C:\ test \ test.php中 – Jaiff

+0

@Jaiff您正在運行哪個PHP版本?這個功能需要5.3。 – Devator

+0

這不起作用,因爲你提供的例子會返回0 –

17

更優雅的解決方案是使用DateTimeDateInterval

<?php 

// @link http://www.php.net/manual/en/class.datetime.php 
$d1 = new DateTime('2011-09-01'); 
$d2 = new DateTime('2012-06-06'); 

// @link http://www.php.net/manual/en/class.dateinterval.php 
$interval = $d2->diff($d1); 

$interval->format('%m months'); 
+22

如果間隔爲超過12個月。 13個月的差異將顯示爲1.作爲用戶在對其他答案的評論中提到的,可以使用'$ interval-> m + 12 * $ interval-> y'來解決這個問題。 – Matthew