On Tue, Apr 20, 2010 at 03:32:58PM -0400, tedd wrote: > At 11:40 AM -0400 4/20/10, Floyd Resler wrote: >> I need to get the difference in months between two dates. The dates >> could be as much as 60 months apart. Is there any easy way to do >> this either through PHP or MySQL? I know how I can do it through >> code but thought there might be a simple one or two line option. >> >> Thanks! >> Floyd >> > > > <?php > > $date1 = '2009-02-27'; > $date2 = '2004-12-03'; > > $udate1 = strtotime($date1); > $udate2 = strtotime($date2); $from = getdate($udate1); $from_year = $from['year']; $from_month = $from['month']; $to = getdate($udate2); $to_year = $to['year']; $to_month = $to['month']; // Assumes $to_date is later than $from_date if ($from_year == $to_year) $months = $to_month - $from_month; elseif ($to_month >= $from_month) { $num_years = $to_year - $from_year; $add_months = $num_years * 12; $base_months = $to_month - $from_month; $months = $base_months + $add_months; } else { // $to_month < $from_month $num_years = $to_year - $from_year; $base_months = $num_years * 12; $sub_months = $from_month - $to_month; $months = $base_months - $sub_months; } This will give the months between two dates, ignoring the actual day of the month for each date (may not be exactly what you want, and code is untested). > > $difference = $udate1 - $udate2; > > $months_difference = floor($difference / 2678400); > > echo("The difference is $months_difference months"); > > ?> > > I this will work, but the question of what constitutes a month might > come into play. My code above is submitted because I don't like doing calculations with seconds. Tedd's right, the OP's questions can't be answered precisely because months vary in number of days. Paul -- Paul M. Foster -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php