我正试图获得日期之间的总月差。如果间隔大于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));
我只想要一些内置函数(如果有的话)以便减少时间,因为我在循环中计算它并且还有很多数据处理。
提前完成。
答案 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