$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中获取非对象的属性
答案 0 :(得分:0)
这是错误而不是给它一个由date('Y-m-d H:i:s')
生成的字符串给它一个DateTime
对象$date2
$month = $date1->diff($date2);
echo $month->format('%m')
答案 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;