domingo, 18 de septiembre de 2011

Sumar días, meses, años a una fecha en PHP

Ok, los ejemplos los mostrare sumando un mes a la fecha pero para días o años es básicamente lo mismo.

Primera opción

La forma más sencilla es la siguiente, solo toma una línea de código y ya.

echo date("m/d/Y", strtotime("09/17/2011 +1 month"));

También podemos hacerlo si tenemos la fecha en una variable.

$Fecha = "09/17/2011";
echo date("m/d/Y", strtotime("$Fecha +1 month"));

Para sumarle a la fecha del sistema sería similar.

echo date("m/d/Y", strtotime(date("m/d/Y")." +1 month"));

Incluso podemos sumar días, semanas, horas, etc.

//http://php.net/manual/es/function.strtotime.php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";

Segunda opción

Un poco más extensa pero aun sencilla. Lo mejor es que si algún valor se sale de rango (por ejemplo 14 meses) automáticamente nos incrementa los años.

$FechaArreglo = explode("/", date("m/d/Y", strtotime("09/17/2011")));
$Fecha = mktime(0, 0, 0, $FechaArreglo[0]+1, $FechaArreglo[1], $FechaArreglo[2]);
echo date("m/d/Y", $Fecha);

Con la fecha del sistema es un poco más sencillo.

$Fecha = mktime(0, 0, 0, date("m")+1, date("d"), date("Y"));
echo date("m/d/Y", $Fecha);

Tercera opción

Sumarle segundos a una fecha. Esta es una buena opción si queremos incrementar segundos, minutos, horas o incluso días a una fecha. Para sumar meses o años tendríamos que tener ciertas consideraciones ya que no todos los meses tienen el mismo número de días.

$Fecha = strtotime("09/17/2011")+(60*60*24);
echo date("m/d/Y",$Fecha);

9 comentarios:

  1. Es posible que me colabores con una inquietud?

    ResponderEliminar
    Respuestas
    1. es un poco urgente y es acerca de tener un formulario, ingresar una fecha y que el php sume dias, meses y años, determinados.

      Eliminar
    2. Jeje sorry después de 1 año, he tenido muchísimo trabajo pero ya pienso revivir el blog

      Eliminar
  2. gran articulo!! muchas gracias :D

    ResponderEliminar
  3. Como se puede hacer para sumar dias, horas y minutos pero excluir sabados y domingos. Ejemplo si sumo 3 días pero empieza jueves, viernes pero saltarse sabado y domingo y continuar el lunes, entonces el proceso terminaria el lunes.

    ResponderEliminar
  4. Supongo que lo que quieres es calcular los días hábiles.
    Espero te sirva esta página que encontré.
    http://felipe-pena.blogspot.mx/2010/12/calcular-dias-habiles-con-php.html

    ResponderEliminar