Tuesday 2 June 2015

Number of days between two dates -Returns the actual number of days between two specific dates

<?php
// Will return the number of days between the two dates passed in
function count_days( $a, $b ){
   // First we need to break these dates into their constituent parts:
   $a = strtotime( $a . " 8:00am" );
   $b = strtotime( $b . " 8:00am" );
   $gd_a = getdate( $a );
   $gd_b = getdate( $b );

   /** Now recreate these timestamps, based upon noon on each day
   **/ The specific time doesn't matter but it must be the same each day  
   $a_new = mktime( 12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year'] );
   $b_new = mktime( 12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year'] );

   /** Subtract these two numbers and divide by the number of seconds in a
     * day. Round the result since crossing over a daylight savings time
   **/ barrier will cause this time to be off by an hour or two.

   return round( ($a_new - $b_new ) / 86400 );
}
?>

0 comments:

Post a Comment