Arquivado em: PHP | Tags: calcular datas, datas, date, mktime, PHP, timestamp
Diferença entre datas com a função mktime()
Um exemplo simples de como calcular a diferença entre 2 datas utilizando o php, como bem sabemos um dia possui 24 horas que equivale a (24 * 60 * 60) igual á 86400.
A função mktime recebe os argumentos (hora, minuto, segundos, mes, dia, ano).
<?php
#setando a primeira data 10/01/2008
$dia1 = mktime(0,0,0,01,10,2008);
#setando segunda data 10/02/2008
$dia2 = mktime(0,0,0,02,10,2008);
#armazenando o valor da subtracao das datas
$d3 = ($dia2-$dia1);
#usando o roud para arrendondar os valores
#converter o tempo em dias
$dias = round(($d3/60/60/24));
#converter o tempo em horas
$hrs = round(($d3/60/60));
#converter o tempo em minutos
$mins = round(($d3/60));
#exibindo dias | repudizira na tela 31
echo $dias.”<br>”;
#exibindo horas | repudizira na tela 744
echo $hrs.”<br>”;
#exibindo minutos | repudizira na tela 44640
echo $mins.”<br>”;
?>
Importante lembrar que acima hrs é o total de horas entre as duas datas e o mesmo para minutos.
Para tornar o exemplo útil você precisa setar de forma dinâmica os valores para $dia1 e $dia2, como exemplo imagine que seu sistema grava a data (mktime) de um post e faça o calculo do (diaAtual – diadoPost).
Dica:
Para passar para o formato comum uma data em mktime() use o date como abaixo:
echo date(‘d/m/Y’,$dia2);
Até logo,
6 Comentários até o momento
Deixe um comentário
Linhas e parágrafos quebram automaticamente, endereços de email não serão mostrados, HTML permitido:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Cara, muito boa dica, valeu!
Comment por Paulo Abril 2, 2009 @ 12:45 pmÉ nesse momento que eu paro e penso: “Como é que eu não pensei nisso antes?!?!?!?!”
xD
Comment por Tata Junho 10, 2009 @ 12:41 pmMuito boa dica, TY!!
como faço para utilizar o tempo do sistema operacional para calcular o tempo que o usuario permanece na pagina
Comment por TCL Setembro 11, 2009 @ 7:03 pmcara
Comment por guilherme Setembro 24, 2009 @ 2:28 amque dica EXCELENTE!
muito obrigado!!!
cara, muito util esse código mesmo, mas deu alguns problemas quanto ao ’round’ que você deu nas variaveis, seria mais apropriado usar um ‘floor’, que foi o que eu usei aqi e funcionou muito bem.
Comment por Marcos Outubro 9, 2009 @ 7:38 pmMuito bom esse código, eu consegui rodá-lo tanto com o ROUND e o FLOOR deram certo! Deu um pequeno erro no “echo $dias.””;
” em diante… Resolvi com o corfome segue abaixo:
PARABÉNS RAFAEL!!!
Comment por Paulo Outubro 23, 2009 @ 7:56 am