如何在PHP中获得几个月前的绝对数量

时间:2015-05-12 03:54:26

标签: php date datetime

有很多关于此的问题,但我找不到确切的答案。

$datetime1 = new DateTime('2015-01-15');
$datetime2 = new DateTime(date('Y-m-d'));
$interval = $datetime1->diff($datetime2);
echo $interval->format('%m months');

今天是2015-05-11,这将返回3 months。我希望它总是假设它是$datetime1月的第一天所以它应该实际返回4 months

我想我可以使用str_replace()或其他一些字符串函数来删掉$datetime1的那一天,但我假设有更优雅的方法?

由于

1 个答案:

答案 0 :(得分:0)

如果' 2015-01-15'是可变的。你可以这样做:

$date = '2015-01-15';
$datetime1 = new DateTime( date('Y-m-01', strtotime($date)) );

或使用子字符串函数。

$date = '2015-01-15';
$datetime1 = new DateTime( substr($date, 0, 7).'-01' );

子串会更快,但strtotime()可以处理各种格式。