Cómo añadir días a la fecha en PHP
Manipular la cadena date
en PHP puede hacerse de muchas maneras, puede añadir o deducir horas, meses, años, etc. PHP proporciona diferentes funciones como DateTime
, date_add
y la combinación de strtotime()
y date()
.
Método add
en DateTime()
para añadir días en PHP
Usando la versión 5.3 y superior de PHP, el objeto DateTime
y su método add
también puede ser una solución. DateTime
soporta más formatos de fecha que strtotime
y date
. Usar un objeto también es más fácil que las funciones arbitrarias. Por ejemplo, cuando se comparan dos fechas, es directo en DateTime
, pero en strtotime
, es necesario convertir la fecha primero en timestamp
.
Ejemplo:
<?php
$oldDate = "2020-02-27";
$newDate = new DateTime($oldDate);
$newDate->add(new DateInterval('P1D')); // P1D means a period of 1 day
$fomattedDate = $date->format('Y-m-d');
?>
El siguiente código imprimirá la Producción :
echo $fomattedDate; //output: 2020-02-28
La parte difícil de usar DateTime()
es el objeto DateInterval
. Esto acepta una especificación de intervalo válida. El formato apropiado comienza con la letra P
que significa período
, seguido de un valor entero, luego D
para el día. Si la duración es el tiempo, la última parte debe ser T
.
Combinación de strtotime()
y date()
para agregar días a la fecha en PHP
La strtotime()
es una función PHP que se utiliza para convertir una descripción textual de la fecha en inglés en una marca de tiempo UNIX. La función strtotime
aceptará un valor de cadena que representa la fecha-hora.
Ejemplo:
<?php
$oldDate = "2020-02-27";
$date1 = date("Y-m-d", strtotime($oldDate.'+ 1 days'));
$date2 = date("Y-m-d", strtotime($oldDate.'+ 2 days'));
?>
El siguiente código saldrá:
echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
El ejemplo anterior aceptará una cadena de fecha con el formato adecuado y devolverá la nueva fecha usando strtotime
y +1 days
. La función date()
dio el formato apropiado.
Nota: Para evitar la oscuridad, se recomienda usar el formato ISO 8601 (YYYY-MM-DD)
.
date_add()
para añadir días a la fecha en PHP
Este enfoque es el más fácil entre los otros para añadir días, meses, años, horas, minutos y segundos.
Ejemplo:
$oldDate = date_create("2020-02-27");
date_add($oldDate, date_interval_create_from_date_string("1 day"));
En la aplicación:
echo date_format($date,"Y-m-d"); //output: 2020-02-28
El ejemplo anterior también añade fechas a una cadena de fechas, date_create()
crea un objeto DateTime. date_interval_create_from_date_string()
establece un DateInterval
de las partes de la cadena. Luego, finalmente, date_add()
incrementa el valor de la fecha.