2016-01-08 3 views
1

Я хотел бы вычесть 300 дней с 40 лет (14609 дней), и я хотел бы получить результаты;Как вычесть 300 дней с 40 лет с PHP?

хх годов XX МЕСЯЦЕВ XX ДНЕЙ

Я знаю, что я должен написать свой код здесь, но проблема в том, я не знаю, как писать код.

спасибо.

+0

365 * 40 = 14600, вычесть 300 = 14300 дней. Где находится '14609688'? –

+0

В лучшем случае ваш ответ будет приблизительным, так как количество дней в каждом месяце меняется. Кроме того, за 40 лет существует всего 14600 дней. – Nate

+0

Согласно Google, он показывает 14609.688. Я не знаю, почему я так писал. Спасибо, что исправили меня :) – iwocan

ответ

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 дней

Я не думаю, что вы можете сделать лучше, чем это для того, что вам требуется.

+0

Спасибо @ Крис Трюдо, он отлично работает! – iwocan