te dejo 3 ejemplos, probe con una fecha complicada, 31 de cualquier mes porque no todos los meses tienen 31, ve como se comporta
salu2
Código PHP:
<?
$fechavar="31-01-2010";
print "fecha: <b>$fechavar</b><p>";
//para sumar mes, primero crear variable como fecha
list($d,$m,$a)=explode("-",$fechavar);
print "<h2>Ejemplo Sumando un mes</h2>";
for($i=0;$i<12;$i++){
$aumentofecha=mktime(0,0,0,$m+$i,$d,$a);
print "Sumando $i mes en numero=> $aumentofecha - en fecha => ".date("d-m-Y",$aumentofecha)."</br>";
}
print "<hr>";
print "<h2>Ejemplo Sumando 30 días</h2>";
for($i=0;$i<12;$i++){
$aumentofecha=mktime(0,0,0,$m,$d+$i*30,$a);
print "Sumando $i mes en numero=> $aumentofecha - en fecha => ".date("d-m-Y",$aumentofecha)."</br>";
}
print "<hr>";
//esta opcion se acomoda al numero de dias del mes
//asi par afebrero un mes son 28, como para marzo 31...
print "<h2>Ejemplo Sumando un mes y se regula automaticamente en caso de exceder mes</h2>";
$mesnext=date("n",mktime(0,0,0,$m,$d,$a));
for($i=0;$i<12;$i++){
$aumentofecha=mktime(0,0,0,$m+$i,$d,$a);
$diasmes=date("t",mktime(0,0,0,$mesnext,1,$a));
$mesnext++;
if($diasmes<$d){
$difdias=$d-$diasmes;
$aumentofecha=mktime(0,0,0,$m+$i,$d-$difdias,$a);
}
print "Sumando $i mes en numero=> $aumentofecha - en fecha => ".date("d-m-Y",$aumentofecha)."</br>";
}
?>