2013-02-21 2 views
-1
<?php 
$date1 = "2002-1-1"; 
$date2 = "2021-12-31"; 
$deff = abs(strtotime($date2) - strtotime($date1)); 
$daycount = $deff/(60 * 60 * 24); 
echo $daycount; 
?> 

Почему ответ 7304 вместо 7300, поскольку я пытаюсь рассчитать количество дней в течение 20 лет?Ошибка (?) В дневном подсчете PHP

Пожалуйста, помогите.

+0

В этот период нет 4 високосных дней? –

+0

Включение високосных лет? – Alex

+0

7304 правильный ответ, я проверил с датифом в sql :) –

ответ

2

Использование DateTime для этого:

$datetime1 = new DateTime("2002-1-1"); 
$datetime2 = new DateTime("2021-12-31"); 
$interval = $datetime1->diff($datetime2); 
$elapsed = $interval->format('%a days'); 
echo $elapsed; 

See it in action

Ссылка

+0

Я предполагаю, что это значит, что выход правильный. –

+0

Жаль мистера Джона Конде. Он по-прежнему возвращает 7304 дня. – user2095988

0

Ваш код верный. Вот сколько дней между этими двумя днями. Не забывайте про високосные годы.

0

Чувак, ответ:

С включительно: вторник, 1 января 2002 года

, но не в том числе: в пятницу, 31 декабря 2021

Это 7304 дней с дата начала до даты окончания, но не включая дату окончания.

Вы забыли добавить високосные годы. То есть 4 дополнительных дня !!!

Смежные вопросы