0

我有一个问题来获得两个日期之间的月差。

$d1 = date_create('January 1, 2013');
$date = date("F j, Y");
$d2 = date_create($date);
$dif = date_diff($d1, $d2);
 //echo $dif->format('%y years');
 echo $dif->format('%m months');

它显示几个月,但不是几个月的全部差异。我只想要日期之间几个月的差异。

4

1 回答 1

2

%m最多只显示 11 个月。在那之后的岁月里,人满为患。如果你想要总月数,你需要计算年数并做一些数学运算:

$d1  = date_create('January 1, 2013');
$d2  = date_create();
$dif = date_diff($d1, $d2);
echo ($dif->format('%m') + $dif->format('%y') * 12) . ' months';

演示

仅供参考,上述解决方案删除了​​不必要的代码。如果您想要今天的日期,您只需不将任何参数传递给date_create().

于 2014-11-03T20:58:37.370 回答