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

时间:2015-02-14 05:09:48

标签: php date

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

代码:

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

2 个答案:

答案 0 :(得分:2)

试试这种方式

$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";

答案 1 :(得分:0)

  

请试试这个

$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);
  

或者其他尝试这个

$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)