<?php
function date_diff( $till, $since, &$d, &$m, &$y ) {
date_diff_remainder( $since, $d1, $m1, $y1, $d1_sec, $m1_sec, $y1_month );
date_diff_remainder( $till, $d2, $m2, $y2, $d2_sec, $m2_sec, $y2_month );
$d = $d2 - $d1;
if( $d1_sec > $d2_sec )
$d--;
$m = $m2 - $m1;
if( $m1_sec > $m2_sec )
$m--;
$y = $y2 - $y1;
if(
($y1_month > $y2_month) ||
($y1_month == $y2_month) &&
($m1_sec > $m2_sec) )
$y--;
}
function date_diff_remainder( $date,
&$d, &$m, &$y, &$d_sec, &$m_sec, &$y_month ) {
$y_date = strftime( '%Y', $date );
$m_date = strftime( '%m', $date );
$d_date = strftime( '%d', $date );
$d_sec = $date - mktime(0, 0, 0, $m_date, $d_date, $y_date);
$m_sec = $date - mktime(0, 0, 0, $m_date, 1, $y_date);
$y_month = $m_date-1;
$d = floor( $date / 60/60/24 );
$y = $y_date - 1970;
$m = $y_month + $y*12;
}
date_diff( strtotime('2008-02-07 03:17:32'), strtotime('2008-01-07 03:17:33'), $d, $m, $y );
echo "$d\n";
echo "$m\n";
echo "$y\n"; ?>