是否有任何php内置函数返回总月差


Is there any php in built function which return total months difference?

我想要得到两个日期之间的总月差。如果间隔大于1年,则该函数还应计算该年的月份。我试过了-

//create dates
        $fromDate = date(
            'Y-m-d', 
            strtotime(
                '01-'.str_replace("/", "-", $companyData['from'])
            )
        );
        $toDate   = date(
            'Y-m-d', 
            strtotime(
                '01-'.str_replace("/", "-", $companyData['to'])
            )
        );
        $from     = date_create($fromDate);
        $to       = date_create($toDate);
        $interval = date_diff($from, $to);//debug($interval);
        //calculate and return in number of months format
        return $interval->format('%m');

date format - '01-07-2014'

,但它不考虑年份。只返回月份之间的差值字段。我可以引爆它,手动引爆。所以PLZ如果有任何内置功能是有建议。伙计们,我有工作代码-

//calculate and return in number of months format
$diff = ($interval->m + ($interval->y * 12));

我只是想要一些内置的函数,如果有的话,这样就可以减少我在循环中计算它的时间,而且还有很多数据处理。

您可以使用DateTime函数来获得您的结果

$datetime1 = new DateTime('01-07-2014');
$datetime2 = new DateTime('01-07-2016');
$dateDiff = $datetime1->diff($datetime2);
$difftotalMonths = $dateDiff->y >= 1 ? ($dateDiff->y * 12) + $dateDiff->m : $dateDiff->m;
var_dump($difftotalMonths);
//int(24)

您是否尝试添加2个新变量,如$fromyear和$toyear,然后计算它们之间的差异。然后计算月份之间的差,并进行如下计算:(diffyear * 12) + diffmonth