如何用PHP从40年中扣除300天?

时间:2016-01-08 20:53:48

标签: php date intervals datediff

我想从40年(14609天)中扣除300天,我希望得到的结果如下;

xx年 XX个月 XX天

我知道我必须在这里编写我的代码,但问题是,我不知道如何编写代码。

谢谢。

1 个答案:

答案 0 :(得分:1)

好吧,正如NateB所说,你能得到的最好的是近似值。每年平均在12个月内平均延长365.25天。平均月份为(365.25/12),即30.4375天。这让我们得到以下代码:

$total_days = 14610-300;

$total_months = $total_days/30.4375;
$days_left = fmod($total_days, 30.4375);

$total_years = $total_months/12;
$months_left = fmod($total_months, 12);

echo floor($total_years)." years, ".floor($months_left)." months, ".round($days_left)." days";

返回:

  

39年,2个月,4天

请注意,您可以执行小数甚至计算出小时数而不是舍入天数:

echo floor($total_years)." years, ".floor($months_left)." months, ".number_format($days_left, 1)." days";

返回:

  

39年,2个月,4.4天

我认为你不能做得比这更好。