Как минус две даты в php

я хочу минус две даты в php

например:

$date1 = 08/16/2013; $date2 = 08/23/2013; $answer = date2 - date1; 

$ answer должно быть 7, как я это сделаю? Спасибо большое

Начните использовать класс DateTime для обработки даты / времени:

 $date1 = new DateTime('08/16/2013'); $date2 = new DateTime('08/23/2013'); $diff = $date1->diff($date2); print_r($diff); // or $diff->days 

Вывод :

 DateInterval Object ( [y] => 0 [m] => 0 [d] => 7 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 7 ) 

Подробнее о DateTime: diff () .


Обратите внимание, что различные примеры strtotime () неверны в расчете разницы между датой и временем. Самый простой пример – разница между 2013-03-31 21:00 и 2013-03-30 21:00 . Который для невооруженного глаза является точной разницей в 1 день, но если вы 82800 эти 2 даты, вы получите 82800 секунд, что равно 0.95833333333333 дням. Это связано с изменением времени от зимы до летнего времени. DateTime обрабатывает високосные годы и временные зоны.

Попробуй это –

 <?php $date1 = strtotime('08/16/2013'); $date2 = strtotime('08/23/2013'); echo $hourDiff=round(abs($date2 - $date1) / (60*60*24),0); ?> 

Вы можете получить strtotime и минус даты

 $diff = abs(strtotime('08/16/2013') - strtotime('08/23/2013')); echo $min = floor($diff / (60*60*24)); // 7 
 $date1 = '08/16/2013'; $date2 = '08/23/2013'; $days = (strtotime($date2) - strtotime($date1)) / (60 * 60 * 24); print $days;