php

2014-11-03 55 views
0

中的两个日期(“F j,Y”)日期之间的时间差异我有一个问题,以获得两个月份之间的月份差异。php

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

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

+0

此代码输出'10个月',但真正的差异是22个月。 – 2014-11-03 20:56:46

+0

'date(“F j,Y”)''代表什么?你为什么不打印第二个日期。 – ericpap 2014-11-03 20:59:28

+0

它显示当前日期 – 2014-11-03 21:00:30

回答

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'; 

Demo

仅供参考,上述方案中删除不必要的代码。如果你想要今天的日期,你只是不要传递任何参数到date_create()

+0

谢谢你@jhon孔德 – 2014-11-03 21:06:32

+0

有一种感觉,你会在这里。 OP的手是好的;) – 2014-11-03 21:12:47