Skip to content

Instantly share code, notes, and snippets.

@Riaan-ZA
Created November 6, 2012 11:39
Show Gist options
  • Save Riaan-ZA/4024173 to your computer and use it in GitHub Desktop.
Save Riaan-ZA/4024173 to your computer and use it in GitHub Desktop.
PHP: PHP5.2 date diff function
//Used for date difference calculations
function dateTimeDiff($date1, $date2) {
$alt_diff = new stdClass();
$alt_diff->y = floor(abs($date1->format('U') - $date2->format('U')) / (60*60*24*365));
$alt_diff->m = floor((floor(abs($date1->format('U') - $date2->format('U')) / (60*60*24)) - ($alt_diff->y * 365))/30);
$alt_diff->d = floor(floor(abs($date1->format('U') - $date2->format('U')) / (60*60*24)) - ($alt_diff->y * 365) - ($alt_diff->m * 30));
$alt_diff->h = floor( floor(abs($date1->format('U') - $date2->format('U')) / (60*60)) - ($alt_diff->y * 365*24) - ($alt_diff->m * 30 * 24 ) - ($alt_diff->d * 24) );
$alt_diff->i = floor( floor(abs($date1->format('U') - $date2->format('U')) / (60)) - ($alt_diff->y * 365*24*60) - ($alt_diff->m * 30 * 24 *60) - ($alt_diff->d * 24 * 60) - ($alt_diff->h * 60) );
$alt_diff->s = floor( floor(abs($date1->format('U') - $date2->format('U'))) - ($alt_diff->y * 365*24*60*60) - ($alt_diff->m * 30 * 24 *60*60) - ($alt_diff->d * 24 * 60*60) - ($alt_diff->h * 60*60) - ($alt_diff->i * 60) );
$alt_diff->invert = (($date1->format('U') - $date2->format('U')) > 0)? 0 : 1 ;
return $alt_diff;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment