我需要像excel公式中的明智yearfrac(date1,date2)
这样的PHP函数。
目前我使用以下代码从两个不同日期获取年龄。
$interval = date_diff(date_create($date1),date_create($date2));
$age = $interval->format("%Y");
它给出最大值,这意味着如果答案是5.6则它给出6。
在excel中,它返回5.6。
答案 0 :(得分:1)
这将按照您的要求运作:
$date1 = new DateTime("1966-05-21");
$date2 = new DateTime("1969-04-23");
$diff = $date1->diff($date2);
echo round(($diff->days/365),1);
答案 1 :(得分:1)
接受的答案不是真的正确。对于2012年1月1日和2012年7月30日,您将获得:
0.57808219178082
(无舍入)0.58055555555556
在Excel中您可以在PHPOffice/PhpSpreadsheet
包中找到此功能的正确实现,请参阅:https://github.com/PHPOffice/PhpSpreadsheet/blob/83a50537b200a9942ea593863f04fa1bb77b388a/src/PhpSpreadsheet/Calculation/DateTime.php#L897