3

このトピックはかなり使い果たされていることは承知していますが、明らかに十分ではありません。

$temp_d1 = new DateTime(date('Y-m-d', $fromTime)); // 2012-01-01
$temp_d2 = new DateTime(date('Y-m-d', $endTime)); // 2013-02-01
$interval = $temp_d2->diff($temp_d1); 
$monthsAhead = $interval->format('%m'); // returns 1, but I am expecting 13

12か月のスケール内で折り返すことなく、2つの日付の間の月数をどのように計算しますか?

4

1 に答える 1

21

私は正確に何を混乱させていました:

$monthsAhead = $interval->format('%m');

します。

明らかに、format('%m')はDateIntervalオブジェクトの月コンポーネントをフォーマットしているだけであり、必ずしも'月数として間隔を指定する必要はありません'。

私の場合、私はこれを探していました/これを行うために:

$monthsAhead = $interval->m + ($interval->y * 12);

http://www.php.net/manual/en/class.dateinterval.php

これが将来他の愚か者に役立つことを願っています!

于 2013-03-12T13:41:54.937 に答える