Finding the number of days between two dates
If you're using PHP 5.3 >
, this is by far the most accurate way of calculating the absolute difference:
$earlier = new DateTime("2010-07-06");$later = new DateTime("2010-07-09");$abs_diff = $later->diff($earlier)->format("%a"); //3
If you need a relative (signed) number of days, use this instead:
$earlier = new DateTime("2010-07-06");$later = new DateTime("2010-07-09");$pos_diff = $earlier->diff($later)->format("%r%a"); //3$neg_diff = $later->diff($earlier)->format("%r%a"); //-3
From PHP Version 5.3 and up, new date/time functions have been added to get difference:
$datetime1 = new DateTime("2010-06-20");$datetime2 = new DateTime("2011-06-22");$difference = $datetime1->diff($datetime2);echo 'Difference: '.$difference->y.' years, ' .$difference->m.' months, ' .$difference->d.' days';print_r($difference);
Result as below:
Difference: 1 years, 0 months, 2 daysDateInterval Object( [y] => 1 [m] => 0 [d] => 2 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 367)
Hope it helps !