我想要得到两个日期之间的总月差。如果间隔大于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