2012-05-03 6 views
9

Possible Duplicate:
How to calculate the difference between two dates using PHP?
Date Difference in php?PHP 2つの日付間の月数の違いは?

は、私は今、私はそれらの間の数ヶ月の違いを必要とする

$fdate = "2011-09-01" 

$ldate = "2012-06-06" 

のような変数に2つの日付を持っています。
たとえば、来年の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 + difference + 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のC:\ test \ test.phpの未定義関数date_diff()を呼び出してください。 – 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

関連する問題