RE:restar meses a una fecha
Aqui esta la solucion para los proximos :)
function sumarmeses($fechaini, $meses)
{
/*
if(substr("-",4,4)='-'){
//2010-10-09
list($ano,$mes,$dia)=explode("-",$fechaini);
$fechaini="$dia/$mes/$ano";
}
*/
//formato ->$fecha="27/03/2003";
//2010-11-02
//recortamos la cadena separandola en
//tres variables de dia, mes y año
$dia=substr($fechaini,8,2);
$mes=substr($fechaini,5,2);
$anio=substr($fechaini,0,4);
//Sumamos los meses requeridos
$tmpanio=floor($meses/12);
$tmpmes=$meses%12;
$anionew=$anio+$tmpanio;
$mesnew=$mes+$tmpmes;
//Comprobamos que al sumar no nos hayamos
//pasado del año, si es así incrementamos
//el año
if ($mesnew>12)
{
$mesnew=$mesnew-12;
if ($mesnew<10)
$mesnew="0".$mesnew;
$anionew=$anionew+1;
}
//Ponemos la fecha en formato americano y la devolvemos
$fecha=date("Y-m-d", mktime(0,0,0,$mesnew,$dia,$anionew) );
return $fecha;
}
function restarMeses($fecha,$restar){
$restar = (int) $restar;
list($ano,$mes,$dias) = explode("-",$fecha);
$mes = (int) $mes;
//calcular numero a restar :)
$RestarAno = (int) ($restar/12);
$RestarMeses = (int) ($restar%12);
//se procede con calculo Andy :)
$ano = $ano - $RestarAno;
$mes = $mes - $RestarMeses;
return "$ano-$mes-$dias";
}