2012-06-02 7 views
-2

Можно создать дубликат:
How to find number of days between two dates using phpСоберите количество дней между двумя датами

Соберите количество дней между двумя датами, например 02/11/2012 А между 02/12/2012

Результатом является количество дней = 1 день

+0

Вы отметили эту AJA X и PHP. Вам нужно знать, как это сделать в Javascript или PHP? – ghoti

ответ

0
echo (strtotime('02/12/2012') - strtotime('02/11/2012'))/(24*60*60); 

Эта строка преобразует обе даты в временные метки unix, вычитает их и делит на количество секунд в день.

2

попробовать это

function dateDiff ($d1, $d2) { 

    return round(abs(strtotime($d1)-strtotime($d2))/86400); 

} 

Функция использует PHP (ABS) абсолютное значение всегда возвращает число, как положительное номер от количества дней между двумя датами.

2

PHP> = 5.3 вы можете использовать DateTime::Diff:

<?php 
    $datetime1 = new DateTime('2009-10-11'); 
    $datetime2 = new DateTime('2009-10-13'); 
    $interval = $datetime1->diff($datetime2); 
    echo $interval->format('%R%a days'); 
?> 
+0

Это, вероятно, значительно медленнее, чем использование strtotime(), но это альтернатива;) – Jeroen

+0

@ Jeroen: Хотя это относится к учету DST/Leap Years и другим факторам ... –

+0

Какая разница? Временные метки UNIX, возвращаемые strtotime(), - это просто количество секунд с 1 января 1970 года, так что автоматически «учитывает» високосные годы. – Jeroen

0

Вы можете преобразовать дату в метку времени с функцией StrToTime():

$date1 = strtotime("02/11/2012"); 
$date2 = strtotime("02/12/2012"); 
$difference = $date1 - $date2; 

Тогда у вас есть разница в секундах, которое это новая временная метка, поэтому вы можете преобразовать ее в дни с функцией даты():

$days = date("d", $difference); 
Смежные вопросы