Como adicionar dias em PHP

Ralfh Bryan Perez 30 janeiro 2023
  1. add Método em DateTime() para adicionar dias em PHP
  2. date_add() para adicionar dias para a data em PHP
Como adicionar dias 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.

Artigo relacionado - PHP Date