Como adicionar dias em PHP
-
add
Método emDateTime()
para adicionar dias em PHP -
date_add()
para adicionar dias para a data em PHP
Manipular a data
em PHP pode ser feito de várias maneiras, pode adicionar ou deduzir horas, meses, anos, etc. O PHP fornece diferentes funções como DateTime
, date_add
e combinação de strtotime()
e date()
.
add
Método em DateTime()
para adicionar dias em PHP
Utilizando PHP versão 5.3 e superior, o objeto DateTime
e seu método add
também pode ser uma solução. O DateTime
suporta mais formatos de data do que o strtotime
e o date
. A utilização de um objeto também é mais fácil que funções arbitrárias. Por exemplo, ao comparar duas datas, é direto em DateTime
, mas em strtotime
, é necessário converter a data primeiro para o carimbo da hora.
Exemplo:
<?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');
?>
O seguinte código irá imprimir a resultado:
echo $fomattedDate; //output: 2020-02-28
A parte difícil de utilizar o DateTime()
é o objeto DateInterval
. Isto aceita uma especificação de intervalo válida. O formato adequado começa com a letra P
que significa period
, seguido por um valor inteiro, e depois D
para o dia. Se a duração é tempo, a última parte precisa ser T
.
Combinação de strtotime()
e date()
para adicionar dias à data em PHP
O strtotime()
é uma função PHP que é utilizada para converter uma descrição de data textual em inglês para um carimbo de tempo UNIX. A função strtotime
aceitará um valor de string que representa a data e a hora.
Exemplo:
<?php
$oldDate = "2020-02-27";
$date1 = date("Y-m-d", strtotime($oldDate.'+ 1 days'));
$date2 = date("Y-m-d", strtotime($oldDate.'+ 2 days'));
?>
O seguinte código será emitido:
echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
O exemplo acima aceitará uma string de data com formato apropriado e retornará a nova data utilizando strtotime
e +1 days
. A função date()
deu o formato adequado.
Nota: Para evitar obscuridade, recomenda-se utilizar o formato ISO 8601 (YYYY-MM-DD)
.
date_add()
para adicionar dias para a data em PHP
Esta abordagem é a mais fácil entre as outras para acrescentar dias, meses, anos, horas, minutos e segundos.
Exemplo:
$oldDate = date_create("2020-02-27");
date_add($oldDate, date_interval_create_from_date_string("1 day"));
Em aplicação:
echo date_format($date,"Y-m-d"); //output: 2020-02-28
O exemplo acima também adiciona datas a uma seqüência de datas, date_create()
cria um objeto DateTime. O date_interval_create_from_date_string()
configura um DateInterval
a partir das partes da string. Então, finalmente, date_add()
incrementa o valor da data.