ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

PHP: Sumar fechas

Incrementar o disminuir una fecha, usando PHP

Lenguaje: PHP (compilador: PHP 5)

Categoría: Fecha y hora

// Fuente procedente de ErrorDeSintaxis.es  
// Incrementar o disminuir una fecha, usando  
//  PHP  
// Compilador: PHP 5  
// Nivel: Básico  
// Disponible desde 27/07/2011  
// Aportado por Nacho  
// Autor original: Nacho Cabanes  
// Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=468  

<html>
<body>
<?php
$fecha = date("d-m-y"); /* Dia, mes y año con dos cifras */
echo "La fecha de hoy es: " . $fecha . "<br />";
 
function sumarFecha($fechaInicial,$dias=0,$meses=0,$anyos=0, 
  $horas=0,$minutos=0,$segundos=0) 
{
  $fecha = strtotime($fechaInicial);
  $nuevaFecha = date('d-m-Y H:i:s', 
    mktime(
      date('H',$fecha)+$horas, date('i',$fecha)+$minutos, 
      date('s',$fecha)+$segundos,     // Horas, minutos y segundos
      date('m',$fecha)+$meses, date('d',$fecha)+$dias,   
      date('Y',$fecha)+$anyos));      // Dias, meses y años (modificados)
  return $nuevaFecha;
}
 
$fechaAmericana = date('Y-m-d H:i:s'); 
echo "La fecha de hoy en formato americano es: " . $fechaAmericana . "<br />";
echo "Dos días más: " . sumarFecha($fechaAmericana,2) . "<br />";
echo "Tres meses más: " . sumarFecha($fechaAmericana,0,3) . "<br />";
echo "Cuatro años más: " . sumarFecha($fechaAmericana,0,0,4) . "<br />";
echo "Cinco horas más: " . sumarFecha($fechaAmericana,0,0,0,5) . "<br />";
echo "Seis minutos más: " . sumarFecha($fechaAmericana,0,0,0,0,6) . "<br />";
echo "Siete segundos más: " . sumarFecha($fechaAmericana,0,0,0,0,0,7) . "<br />";
echo "Doscientos segundos menos: " . sumarFecha($fechaAmericana,0,0,0,0,0,-200) . "<br />";
 
echo "Ahora con now: " . date('d-m-Y h:i:s', strtotime("now")), "<br />";
echo "Fecha detallada: " . date('d-m-Y h:i:s', strtotime("10 September 2000")), "<br />";
echo "Mañana: " . date('d-m-Y h:i:s', strtotime("+1 day")), "<br />";
echo "Semana próxima: " . date('d-m-Y h:i:s', strtotime("+1 week")), "<br />";
echo "Varios incrementos: " . date('d-m-Y h:i:s', strtotime("+1 week 2 days 4 hours 2 seconds")), "<br />";
?>
</body>
</html>