Con strtotime puedes hacer algo así:
Código PHP:
Ver originalfunction masxmeses($fecha, $meses, $formato) {
$masxmeses = strtotime("$fecha + $meses months");
if (date('j', $fe_i) != date('j', $masxmeses)) { return date($formato, strtotime('last day of last month', $masxmeses)); }
return date($formato, $masxmeses); }
echo masxmeses('2012-12-31', 2, 'd-m-Y'); //28-02-2013
o con DateTime así:
Código PHP:
Ver originalfunction masxmeses2($fecha, $meses, $formato) {
$date = new DateTime($fecha);
$fe_i = $date->format('j');
$date->modify("+$meses month");
$masxmeses = $date->format('j');
if ($fe_i != $masxmeses) {
$date->modify('last day of last month');
}
return $date->format($formato);
}
echo masxmeses2('2012-12-31', 2, 'd-m-Y'); //28-02-2013