PHP认为从4月1日到7月1日之间有2个月

时间:2014-07-30 09:09:21

标签: datediff php-5.5

PHP 5.5.1.14:

$d1 = new DateTime("2014-04-01 00:00");
$d2 = new DateTime("2014-07-01 00:00");
$d3 = $d2->diff($d1);
echo $d3->m . " months, " . $d3->d . " days";

返回

  

2个月,30天

有没有办法可靠地获得3个月的直观结果? (这是一个错误吗?) 顺便说一句,当使用May1st和Aug1时,它给出了3个月的预期结果......

1 个答案:

答案 0 :(得分:1)

如果时间不重要而且您需要几个月的差异,那么您可以使用' 23:59'时间。

$d1 = new DateTime("2014-04-01 00:00");
$d2 = new DateTime("2014-07-01 23:59");
$d3 = $d2->diff($d1);
echo $d3->m . " months"

返回

3 months

自2014-01-01 - 2014-04-01至2014-12-01 - 2015-03-01之间的所有其他日期对将返回3 months