如何获得日期时间的几个月的日期差异,我已经尝试过datediff但我有错误

时间:2013-12-17 05:59:38

标签: php date datetime

$date1 = new DateTime("2012-12-15 14:11:42");
$date2 = new DateTime(date('Y-m-d H:i:s'));
$month =  $date1->diff(date('Y-m-d H:i:s'));
echo $month->m;

而不是显示我得到的差异是下面的警告 警告:DateTime :: diff()要求参数1为DateTime,在第9行的C:\ xampp \ htdocs \ giftcodex \ test.php中给出字符串

注意:尝试在第10行的C:\ xampp \ htdocs \ giftcodex \ test.php中获取非对象的属性

3 个答案:

答案 0 :(得分:0)

这是错误而不是给它一个由date('Y-m-d H:i:s')生成的字符串给它一个DateTime对象$date2

$month =  $date1->diff($date2);
echo $month->format('%m')

检查此处的文档http://www.php.net/manual/en/datetime.diff.php

答案 1 :(得分:0)

您应该从PHP手册中查看this

date_diff是一个PHP功能,可以在这方面为您提供帮助,如下所示。

$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%m months');

答案 2 :(得分:0)

方法->diff()将作为第一个参数接受DateTime对象,而不是字符串。

变化:

$month =  $date1->diff(date('Y-m-d H:i:s'));

为:

$month =  $date1->diff($date2);

要获得2个日期之间的完整月份差异,您还需要添加年份* 12:

$date1  = new DateTime("2012-12-15 14:11:42");
$date2  = new DateTime("now");
$diff   = $date1->diff($date2);
$months = $diff->m + $diff->y * 12;