You can use strtotime() to convert two dates to unix time and then calculate the number of seconds between them. From this it’s rather easy to calculate different time periods.
- $date1 = “2017-03-24″;
- $date2 = “2019-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 years, %d months, %d days\n”, $years, $months, $days);
$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 years, %d months, %d days\n”, $years, $months, $days);