Ver Mensaje Individual
  #11 (permalink)  
Antiguo 20/01/2013, 20:05
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con Funcion de sumar fechas

Creo que esto funcionaría, no lo he probado 100% pero al parecer funciona:

Código PHP:
Ver original
  1. function masxmeses3($fecha, $meses) {
  2.     $f = explode('-', $fecha);
  3.     $fe_i = mktime(0, 0, 0, $f[1], $f[0], $f[2]);
  4.     $masxmeses = mktime(0, 0, 0, $f[1]+$meses, $f[0], $f[2]);
  5.    
  6.     if (date('j', $fe_i) != date('j', $masxmeses)) {
  7.         return date('t-m-Y', mktime(0, 0, 0, $f[1]+$meses, ($f[0]-date('j', $fe_i))+1, $f[2]));
  8.     }
  9.    
  10.     return date('d-m-Y', $masxmeses);
  11. }
  12.  
  13. echo masxmeses3('31-12-2012', 2); //28-02-2013

Edito: Así también puede servir con DateTime (Tampoco probado al 100%)

Código PHP:
Ver original
  1. function masxmeses4($fecha, $meses, $formato) {
  2.       $dt = new DateTime($fecha);
  3.       $fe_i = $dt->format('j');
  4.      
  5.       $dt->modify("+$meses month");
  6.       $masxmeses = $dt->format('j');
  7.      
  8.       if ($fe_i != $masxmeses) {
  9.           return $dt->modify("-$masxmeses days")->format($formato);
  10.       }
  11.      
  12.       return $dt->format($formato);
  13. }
  14.  
  15. echo masxmeses4('31-12-2012', 2, 'd-m-Y'); //28-02-2013

Cualquier cosa avisa y lo seguimos mirando.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 20/01/2013 a las 20:39