Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP从40年中扣除300天?_Php_Date_Intervals_Datediff - Fatal编程技术网

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

如何使用PHP从40年中扣除300天?,php,date,intervals,datediff,Php,Date,Intervals,Datediff,我想从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_da

我想从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";
这将返回:

39年2个月4天

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

echo floor($total_years)." years, ".floor($months_left)." months, ".number_format($days_left, 1)." days";
这将返回:

39年2个月4.4天


我认为对于你所需要的,你不能做得比这更好。

365*40=14600,减去300=14300天。
14609688
来自哪里?由于每个月的天数不同,您的答案最多只能是一个近似值。此外,40年中只有14600天。根据谷歌的数据,显示为14609.688天。我不知道我为什么这样写。谢谢你纠正我:)所以这里的问题实际上只是打印日期时如何格式化,对吗?嗨,我的问题是如何编写代码以获得如下结果:;xx年,xx月,xx天。谢谢你@Chris Trudeau,它工作得很完美!