leitura de
Encontrou um problema no conteúdo? Por favor, deixe seu comentário!

Fala pessoal! Hoje vou explicar como calcular a diferença (em dias) entre duas datas no PHP.

O processo é bem simples e se resume a criar o timestamp dessas datas e depois calcular o número de dias baseando-se na quantidade de segundos entre as duas datas.

Vou mostrar como fazer o processo de duas formas pois, normalmente, trabalhos com datas em dois formatos: DD/MM/AAAA (padrão brasileiro) e AAAA-MM-DD (formato do MySQL).

Se alguém aí quiser ler um pouco mais sobre como trabalhar com datas no PHP é só dar uma olhada nesse post: Trabalhando com datas no PHP.

Vamos ao primeiro exemplo que usa datas no formato DD/MM/AAAA:

Vou explicar de forma rápida: Primeiro criamos uma função para gerar o timestamp de uma data usando a função mktime() do PHP. Depois nós dividimos o número de segundos (diferença das duas datas) pelo número de segundos existentes em um dia (60 * 60 * 24 = 86400) e arredondamos o resultado usando a função floor().

Essa aplicação pode parecer complicada pra alguns mas ela utiliza um passo-a-passo muito claro pra quem consegue entender o processo de se calcular a diferença de dias entre duas datas. É só pensar em como você pode fazer isso e vai descobrir que não há forma melhor. ;)

Com isso você já consegue calcular a diferença e se usar um pouquinho de criatividade pode calcular também a diferença de horas e minutos.

O exemplo do formato AAAA-MM-DD é mais simples:

Nesse exemplo não precisamos criar uma função pois a função strtotime() do PHP já converte uma data no formato AAAA-MM-DD em timestamp.

Atenção: Não fiz nenhuma validação para caso as datas inseridas sejam inválidas ou a data final seja maior que a data inicial. Meu intuito era mostrar apenas como é o processo do calculo dessa diferença. ;)

Espero que essa aula tenha sido útil pra vocês… Qualquer dúvida ou sugestão é só comentar ou mandar um e-mail.

Até a próxima

Documentação Oficial:

  • Função [explode()](http://br.php.net/explode) » Divide uma string usando um separador
  • Função [mktime()](http://br.php.net/mktime) » Gera um timestamp de uma data especificada
  • Função [floor()](http://br.php.net/floor) » Arredonda valores fracionados para baixo
  • Função [strtotime()](http://br.php.net/strtotime) » Converte datas textuais em timestamps
Thiago Belem / Blog

Thiago Belem


Publicado

Thiago Belem / Blog

Thiago Belem / Blog

Artigos e tutoriais sobre desenvolvimento WEB

Continue lendo