Como sumar o restar días a una fecha con PHP

En este artículo vamos a ver una de las formas más sencillas de sumar o restar días a una fecha determinada. PHP dispone de una función muy interesante y completa para obtener o dar formato a una fecha. La función date() de PHP la vamos a utilizar para obtener la fecha actual con el formato que deseamos.

El objetivo principal de esta entrada no es saber como funciona la función date() de PHP, sino más bien, sumar o restar un número de días a una fecha. Usaremos la función strtotime(). Una función muy interesante que convierte una descripción de fecha/hora textual en Inglés a una fecha Unix.

Por ejemplo, si queremos sumar 30 días o un mes a la fecha actual, lo podríamos hacer de la siguiente forma:

$date_now = date('d-m-Y');
$date_future = strtotime('+30 day', strtotime($date_now));
$date_future = date('d-m-Y', $date_future);

Tan solo estamos obteniendo la fecha actual y obtenemos la fecha futura sumándole 30 días.

Y si queremos restar 30 días o un mes a la fecha actual, lo podríamos hacer de la siguiente forma:

$date_now = date('d-m-Y');
$date_past = strtotime('-30 day', strtotime($date_now));
$date_past = date('d-m-Y', $date_past);

Ver más ejemplos

 

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(11 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

12 respuestas a “Como sumar o restar días a una fecha con PHP”

  1. pablo dice:

    buenas tardesuna consulta a una fecha con el siguiente formato 2020-04-30 00:00:00 como puedo agregarle la hora y que quede asi?—>2020-04-30 20:47:45 desde ya muchas gracias muy interesante su pagina web

  2. Gerardo dice:

    Tomando tu solucion, ¿como puedo sumar dias usando un ciclo for?, es decir a la fecha de hoy quiero imprimir los siguientes 4 dias de la semana, ejemplo:
    fecha hoy 30-12-2021
    31-12-2021
    01-01-2022
    02-01-2022
    03-01-2022…….etc

  3. como seria esta funcion trayendo los datos de la base de datos??

  4. Edgar Laya dice:

    Hola, respondiendo lo que dice Raul Ortiz seria de esta forma, es un poco tarde pero le puede servir a alguien mas.

    Saludos.

  5. Marco Oliva dice:

    Jose yo también tengo la misma duda que Raul

    gracias
    Saludos

    • Jose Aguilar dice:

      Siento decir que yo no se la respuesta. Lo dejamos abierto para que alguien que lo sepa responda. Yo a simple vista creo que la fecha que viene de la base de datos se deberá formatear al estilo Y-m-d para procesarla con strtotime().

  6. lalo dice:

    Buenas noches recurro a usted porque quisiera sumar los dias en esta funcion pero solo logro sumar el año y no me aparece la fecha completa.

    public function assignCommonHeaderData()
    {
    $this->setShopId();
    $id_shop = (int)$this->shop->id;
    $shop_name = Configuration::get(‘PS_SHOP_NAME’, null, null, $id_shop);

    $path_logo = $this->getLogo();

    $width = 0;
    $height = 0;
    if (!empty($path_logo)) {
    list($width, $height) = getimagesize($path_logo);
    }

    // Limit the height of the logo for the PDF render
    $maximum_height = 100;
    if ($height > $maximum_height) {
    $ratio = $maximum_height / $height;
    $height *= $ratio;
    $width *= $ratio;
    }

    $this->smarty->assign(array(

    ‘logo_path’ => $path_logo,

    ‘shop_address’ => $shop_address,

    ‘date’ => $this->date,
    ‘date_2’=>$this->order_invoice->date_add + 10,
    ‘title’ => $this->title,
    ‘shop_name’ => $shop_name,
    ‘shop_details’ => Configuration::get(‘PS_SHOP_DETAILS’, null, null, (int)$id_shop),
    ‘width_logo’ => $width,
    ‘height_logo’ => $height
    ));
    }

  7. Raul Ortiz dice:

    Buen dia Jose, como se haria sumarle dias guardados en una variable a una fecha esta en una variable sacada de la base de datos ?

    Gracias por tu ayuda.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre