Я хотел бы вычесть 300 дней из 40 лет (14609 дней), и я хотел бы получить результаты, как;
ХХ ЛЕТ
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 дня
Я не думаю, что вы можете сделать лучше, чем это для того, что вам нужно.
Других решений пока нет …