Sumar un número de meses a una fecha

Código PHP

PHP – Date – Sumar meses

Función que suma un número determinado de meses a una fecha en formato yyyy-mm-dd. La fecha original no se modifica y devuelve la fecha con los meses sumados.

No se comprueba que la fecha sea válida.

/**
 * Class HelperDate
 */
abstract class HelperDate
{
    /**
     * Suma un número de meses a una fecha.
     * Formato de fecha: yyyy-mm-dd.
     *
     * @param string $fecha
     * @param int    $meses
     *
     * @return string
     */
    public static function sumarMeses($fecha, $meses)
    {
        list($anio, $mes, $dia) = explode('-', $fecha);

        if ($mes + $meses > 12) {

            $sumarMeses = (intval(($mes + $meses) % 12));
            $sumarAnys  = intval(($mes + $meses) / 12);
            $mes        = $sumarMeses; /* -- No se suma */
            $anio       += $sumarAnys;

        } else {

            $mes  += $meses;
            $anio += 0;
        }
        return $anio . '-' .
               substr('00'.$mes, -2 ) . '-' .
               substr('00'.$dia, -2 );
    }
}