Если Вы используете PHP 5.3 и выше, тогда лучше воспользоваться следующим методом:
$date1 = new DateTime("2007-03-24"); $date2 = new DateTime("2009-06-26"); $interval = $date1->diff($date2); echo "Разница: " . $interval->y . " лет, " . $interval->m." месяцев, ".$interval->d." дней";
Подробнее об этой функции можно почитать в документации.
Однако, если на Вашем сервере установлена PHP ниже 5.3, тогда можно воспользоваться методом ниже. Учтите, что он несколько приблизительный:
$date1 = "2007-03-24"; $date2 = "2009-06-26"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); printf("%d лет, %d месяцев, %d дней\n", $years, $months, $days);