Comparação de datas com PHP e a função strtotime

Muitas pessoas que estão iniciando no PHP têm essa dúvida e acabam achando algo difícil trabalhar com comparação datas. Na verdade, não é tão complicado…

Entretanto, comparar duas ou mais datas pode ser muito útil quando estamos programando. Por exemplo… Se você quiser saber entre 2 usuários qual deles é o mais recente no sistema?

Desde que você tenha um campo na tabela de usuários informando a data de cadastro, essa tarefa não vai dar muito trabalho, porque basta comparar as duas datas de cadastro para saber rapidamente quem é o usuário mais antigo, ou mais recente no sistema.

Comparação de datas com PHP e a função strtotime

Este foi apenas um exemplo bem simples de como podemos aplicar na prática o conteúdo do artigo de hoje. E tenho certeza de que você já pensou em várias outras possibilidades de uso.

Antes de continuarmos, algumas considerações:

1. Em nosso exemplo, temos que saber que se o ano for escrito com 2 dígitos, os valores entre 00-69 serão passados a 2000-2069 e os valores entre 70-99 serão passados a 1970-1999.

2. A data estará obrigatoriamente entre 13-12-1901 20:45:54 GMT e 19-01-2038 03:14:07 GMT. (Estes datas correspondem aos valores mínimos e máximos de um inteiro de 32 bits).

Comparação de datas seguindo os parâmetros acima:

<?php

// primeira data
$dataI= '2009-09-15';

// trabalhando a primeira data
$I= strtotime($dataI );

// segunda data
$dataII= '2000-12-25';

// trabalhando a segunda data
$II= strtotime($dataII);

// comparando as datas
if ($I == $II) echo $dataI.' = '.$dataII;
else echo ($I > $II) ? $dataI.' > '.$dataII : $dataI.' < '.$dataII;

Explicação

Este script em PHP é um exemplo de como comparar duas datas utilizando a função strtotime(). No primeiro trecho, “trabalhando a primeira data”, temos a declaração da primeira data em uma variável chamada $dataI. Em seguida, utilizamos a função strtotime() para converter a data em um formato que o PHP possa trabalhar. É importante lembrar que a função strtotime() transforma uma string em um timestamp UNIX, que é um valor numérico que representa a quantidade de segundos que se passaram desde 1º de janeiro de 1970 até a data especificada.

No entanto, no segundo trecho, “trabalhando a segunda data”, temos a mesma lógica aplicada para a segunda data, que é armazenada na variável $dataII. Após a conversão da data em um timestamp UNIX, a variável $II guarda o valor correspondente.

Por isso, no terceiro trecho, “comparando as datas”, temos uma condição que compara as duas datas. Se ambas forem iguais, o script imprime a mensagem “$dataI = $dataII”. Caso contrário, utiliza-se um operador ternário para imprimir a mensagem que indica qual data é maior. Se a primeira data for maior que a segunda, imprime-se “$dataI > $dataII”. Caso contrário, imprime-se “$dataI < $dataII”.

Em resumo, esse script foi criado para permitir a comparação de duas datas utilizando a função strtotime() do PHP, que permite trabalhar com datas em diferentes formatos. É uma forma simples e eficaz de realizar essa tarefa sem precisar de muito código.

Até mais, esse foi ainda um exemplo simples de comparar datas, mas um dos mais eficazes. Se você tiver qualquer dúvida sobre a comparação de datas com o PHP, fique à vontade para fazer suas perguntas nos comentários logo abaixo. Ficarei feliz em ajudar! Você pode dar uma olhada também nos outros artigos artigos que escrevi sobre o PHP.