php计算月份数量,差异小于30天

时间:2016-01-14 17:13:27

标签: php date datediff

我需要在几个月之间获得差异,而不是几天。 如果我这样做:

$todaStart = new DateTime("2015-06-30");
$dateEnd = new DateTime("2015-07-01");

$diff = $todaStart->diff($dateEnd);
var_dump($diff);

object(DateInterval)[3]
public 'y' => int 0
public 'm' => int 0
public 'd' => int 1
public 'h' => int 0
public 'i' => int 0
public 's' => int 0
[...]
" m"参数是0,但是月份发生了变化,所以对于我需要做的计数,我需要结果为1

如果我将月份更改为" 08"同样会发生同样的情况,它应该计算2个月的差异,但响应时间为1个月。

1 个答案:

答案 0 :(得分:1)

我在this网站上找到了这个解决方案的网页,希望对其他人有帮助。

 $d1= new DateTime("2015-06-01");
 $d2= new DateTime("2015-07-30");

 $y1 = $d1->format('Y');
 $m1 = $d1->format('m');
 $y2 = $d2->format('Y');
 $m2 = $d2->format('m');

 $diff = (($y2 - $y1) * 12) + ($m2 - $m1);
 // var_dump($diff) output 1