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:
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:
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
Hola,
Algo así he hecho hace poco pero no tengo el código a mano.
Actualmente use la clase DateTime -> https://www.php.net/manual/es/class.datetime.php
Saludos
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
Hola, Dejaremos la pregunta abierta por si alguien tiene una respuesta rápida aunque yo creo que puedes convertir las fechas a fecha Unix para hacer operaciones que pueden ser más precisas. -> https://www.php.net/manual/es/function.strtotime.php
como seria esta funcion trayendo los datos de la base de datos??
Hola,
Gracias por tu mensaje.
Quizá te pueda ser útil este tutorial que habla de MySQLi que permite trabajar con las bases de datos.
Jose AGuilar,
Saludos
Hola, respondiendo lo que dice Raul Ortiz seria de esta forma, es un poco tarde pero le puede servir a alguien mas.
Saludos.
Jose yo también tengo la misma duda que Raul
gracias
Saludos
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().
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
));
}
Hola,
Creo que te has saltado pasos y te falta adaptar esta linea a tu código:
$date_future = strtotime(‘+30 day’, strtotime($date_now));
Saludos
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.