PHP 如何从 40 年减去 300 天?

How to deduct 300 days from 40 years with PHP?

我想从 40 年(14609 天)中减去 300 天,我想得到这样的结果;

xx 年 XX 个月 XX 天

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

谢谢。

好吧,正如 NateB 所说,你能得到的最好的是近似值。每年平均有 365.25 天,跨越 12 个月。平均一个月将有 (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";

这个returns:

39 years, 2 months, 4 days

请注意,您可以计算小数或计算小时数而不是四舍五入的天数:

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

这个returns:

39 years, 2 months, 4.4 days

我认为对于您的要求,没有比这更好的了。