如何获取日期时间的月份差异,我尝试过日期差异,但我遇到了错误


how to get date diff in months for datetime, i ve tried datediff but i got errors

$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::d iff(( 期望参数 1 为 DateTime,字符串在第 9 行的 C:''xampp''htdocs''giftcodex''test.php 中给出

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

这是错误,而不是给它一个字符串,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

你应该从 PHP 手册中看看这个。

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

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

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

改变:

$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;