从 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";
我想获得两个日期之间的总月数。我的代码返回 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";