Quando estamos criando um sistema, vamos implementando várias funcionalidades de acordo com o tipo de sistema e suas necessidades específicas. Em alguns sistemas há a necessidade de calcular um intervalo entre duas datas, ou seja, o número de dias entre a data inicial e a data final que foram fornecidas. Hoje vamos ver como realizar esse cálculo no PHP.
Começamos criando uma função que será responsável por realizar esse cálculo retornando o número de dias nesse intervalo. Passaremos como parâmetro para a função, as variáveis com a data inicial e a final.
function daysInterval( String $end , String|Null $start = NULL ){
# Função para calcular a quantidade de
# dias entre duas datas fornecidas
# Essa rotina poderia ser usada, por exemplo,
# para informar quantos dias faltam
# para um determinado evento.
}
Aqui verificamos se o parâmetro $start foi passado, senão, atribuímos a ele a data atual.
$start = ( !is_null($start) ) ? $start : date('Y-m-d');
Vamos usar a classe DateTime do PHP para converter a variável $start em um objeto DateTime que permitirá, entre outras coisas, calcular a diferença em dias, entre duas datas.
$date = new DateTime( $start ); ?>
A variável $date, que é uma instância da classe DateTime possui um método que permite calcular a diferença entre $start e $date.
$diff = $date->diff( new DateTime( $end ) ); ?>
Agora recuperamos o número de dias no intervalo.
$interval = $diff->days;
Agora atribuímos dados às variáveis e fazemos a chamada da função para obter os intervalo de dias:
$start = '2024-01-01';
$end = date('Y-m-d');
$interval = daysInterval( $start, $end );
Tudo pronto, já temos o valor do intervalo disponível na nossa variável, então vamos imprimi-lo na tela.
echo "O intervalo entre $start e $end é de $interval dias";
Segue a função completa:
function daysInterval( String $end , String|Null $start = NULL ){
$start = ( !is_null($start) ) ? $start : date('Y-m-d');
$date = new DateTime( $start );
$diff = $date->diff( new DateTime( $end ) );
$interval = $diff->days;
return $interval;
}
Deixe um comentário:
Deixe seu comentário. Só serão exibidos comentários ligados ao texto do post. Links serão removidos.