function diffDates($uts1, $uts2)
{
if( $uts1 < $uts2 ) {
list( $uts1, $uts2 ) = array( $uts2, $uts1 );
}
$date1 = date('YmdHis', $uts1);
$date2 = date('YmdHis', $uts2);
$diff = array
(
'years' => 0,
'months' => 0,
'days' => 0,
'hours' => 0,
'minutes' => 0,
'seconds' => 0,
);
// seconds
if( substr($date1, 12) < substr($date2, 12) ) {
$diff['seconds'] = substr($date1, 12) + 60 - substr($date2, 12);
$diff['minutes']--;
} else {
$diff['seconds'] = substr($date1, 12) - substr($date2, 12);
}
// minutes
if( substr($date1, 10) < substr($date2, 10) ) {
$diff['minutes'] += substr($date1, 10, 2) + 60 - substr($date2, 10, 2);
$diff['hours']--;
} else {
$diff['minutes'] += substr($date1, 10, 2) - substr($date2, 10, 2);
}
// hours
if( substr($date1, 8) < substr($date2, 8) ) {
$diff['hours'] += substr($date1, 8, 2) + 24 - substr($date2, 8, 2);
$diff['days']--;
} else {
$diff['hours'] += substr($date1, 8, 2) - substr($date2, 8, 2);
}
// days
if( substr($date1, 6) < substr($date2, 6) ) {
$daysInMonth = array(31, date('L', $uts2) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$diff['days'] += substr($date1, 6, 2) + $daysInMonth[(int) substr($date2, 4, 2)] - substr($date2, 6, 2);
$diff['months']--;
} else {
$diff['days'] += substr($date1, 6, 2) - substr($date2, 6, 2);
}
// months
if( substr($date1, 4) < substr($date2, 4) ) {
$diff['months'] += substr($date1, 4, 2) + 12 - substr($date2, 4, 2);
$diff['years']--;
} else {
$diff['months'] += substr($date1, 4, 2) - substr($date2, 4, 2);
}
// years
$diff['years'] += substr($date1, 0, 4) - substr($date2, 0, 4);
return $diff;
}