我需要像excel中的明智的yearfrac(date1,date2)这样的PHP函数

时间:2016-04-22 13:08:47

标签: php excel date

我需要像excel公式中的明智yearfrac(date1,date2)这样的PHP函数。

目前我使用以下代码从两个不同日期获取年龄。

$interval = date_diff(date_create($date1),date_create($date2));
$age = $interval->format("%Y");

它给出最大值,这意味着如果答案是5.6则它给出6。

在excel中,它返回5.6。

2 个答案:

答案 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日,您将获得:

    高于PHP版本的
  • 0.57808219178082(无舍入)
  • 0.58055555555556在Excel中

您可以在PHPOffice/PhpSpreadsheet包中找到此功能的正确实现,请参阅:https://github.com/PHPOffice/PhpSpreadsheet/blob/83a50537b200a9942ea593863f04fa1bb77b388a/src/PhpSpreadsheet/Calculation/DateTime.php#L897