Diferença de data e hora

O post de hoje será dedicado a diferença de datas e horas.

Procurando na internet eu achei uma classe chamada DataTime que faz maravilhas !!
Você coloca a data e hora:

$data1 = new DateTime('2002-02-02 12:00:10'); 
$data2 = new DateTime('2002-01-01 11:50:00'); 

E você pode optar por não colocar os segundos e o ano deve ser escrito com 4 dígitos.
E para fazer a diferença no horário, vc coloca a função diff

$diferenca = $data2->diff($data1);
echo $diferenca->format('%y anos, %m meses e %d dias %h horas %i minutos %s segundos');

E está pronto 🙂 ! É uma beleza ! Até que você descobre que o servidor que você subiu a aplicação (ou a sua máquina) está com a versão do PHP 5.2 ou inferior.

Ai eu lhe apresento outra alternativa: strtotime.
Funciona assim:

$data1 = strtotime('01-01-2012 12:50:30'); 
$data2 = strtotime('01-01-2012 11:50:00');

Só que para fazer a diferença entre datas o bicho pega ainda mais se for de um dia para o outro.

$diferenca=$data1-$data2

E detalhe, NUNCA funciona direito!

Se o strtotime não funciona, vou lhe apresentar uma outra alternativa: mktime.
Funciona assim:

$data1=mktime(12,50,00,12,02,2012);
$data2=mktime(11,50,00,12,02,2012);

E para realizar a diferença entre datas basta fazer a conta:

$diferenca=$data1-$data2

E para formatar a data basta usar a função date. Muito mais simples!

Fonte do mktime: Rafael Clares

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s