从 diff 方法返回 0 的两个日期之间的总月数

Total of months between two dates returning 0 from diff method

我想获得两个日期之间的总月数。我的代码返回 0 而不是 10 * 12 。为什么它不起作用,我该如何解决?

代码:

$date1 = new DateTime("2015-02-14");
$date2 = new DateTime("2025-02-14");
var_dump($date1->diff($date2)->m); // output 0

Please try this

$date1 = '2015-02-14';
$date2 = '2025-02-14';
$ts1 = strtotime($date1);
$ts2 = strtotime($date2);
$year1 = date('Y', $ts1);
$year2 = date('Y', $ts2);

$month1 = date('m', $ts1); 
$month2 = date('m', $ts2);

$diff = (($year2 - $year1) * 12) + ($month2 - $month1);

Or Else Try this

$d1 = new DateTime("2015-02-14");
$d2 = new DateTime("2025-02-14");
var_dump($d1->diff($d2)->m); // int(4)
var_dump($d1->diff($d2)->m + ($d1->diff($d2)->y*12)); // int(8)

试试这个方法

$date1 = new DateTime("2015-02-14");
$date2 = new DateTime("2025-02-14");
$diff = $date1->diff($date2);

echo (($diff->format('%y') * 12) + $diff->format('%m')) . "months difference";