是否有任何建立功能的PHP返回总月差异?

时间:2014-08-25 07:25:39

标签: php date

我正试图获得日期之间的总月差。如果间隔大于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'

但它没有考虑岁月。只返回月份字段之间的差异。我可以爆炸它并手动完成。所以如果有任何内置函数,那就是suggest.guys我有工作代码 -

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

我只想要一些内置函数(如果有的话)以便减少时间,因为我在循环中计算它并且还有很多数据处理。

提前完成。

2 个答案:

答案 0 :(得分:0)

您可以使用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)

答案 1 :(得分:-1)

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