2014-06-26 91 views
0

在給呼叫隊打電話之前,我意識到這個問題之前已經被問過了。我查看了stackoveflow(和其他地方)上的20個示例,並不理解爲什麼我的代碼無法工作。我只是試圖使用PHP的date_diff()函數來獲取兩個日期之間的月數。我只在程序風格上編碼而已。返回兩個日期之間的月份數

,我看到的最常見的例子:

$startdate = "2013-06-26"; 
$currentdate = "2014-06-26"; 

$date1 = date_create($startdate); 
$date2 = date_create($currentdate); 
$interval = date_diff($date2, $date1); 

echo $interval->format("%M months"); 

這似乎是普通型的回答,程序明智的,和工作適合所有人,但我。返回「00個月」,沒有錯誤。我正在運行PHP 4+。我覺得我已經做出了真誠的努力去理解這個功能,並且只是我沒有得到的東西。如果有人能說明爲什麼我的代碼無法正常工作,我將不勝感激。

+1

這是因爲不同的是整整一年。 DateInterval將在滾動到一年之前的0 - 11個月內進行報告。如果你這樣做:'echo $ interval-> format(「%y years」);'它會說1代表差異。 DateInterval報告無法超過11個月。 –

+0

謝謝,這是缺少的鏈接! –

回答

1
$date1 = new DateTime("2013-06-26"); 
$date2 = new DateTime("2014-06-26"); 
$interval = date_diff($date1, $date2); 
echo $interval->m + ($interval->y * 12) . ' months'; 

這將有助於

相關問題