Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Buzin

Tempo de diferença

Recommended Posts

Olá galera! estou com um problema aqui tenho um contador regressivo e para este funcionar preciso calcular quantas horas faltam para chegar a aquela hora

<?php
    $relogio = explode(":", $row[0]);
    $inicio = mktime($relogio[0], $relogio[1], $relogio[3]);
    $fim = mktime(date("H"), date("i"), date("s"));
    $tempo = $inicio - $fim;
    echo date("H",$tempo);
?>

mas no meu banco coloquei por exemplo 07:00:00 e ele calcula errado, alguma ideia de como posso resolver isso?

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar o objeto DateTime e Date Interval

 

http://br2.php.net/DateTime

http://br2.php.net/DateInterval

 

 

<?php

$date1 = new DateTime();
$date2 = new DateTime();

$date1->setTime(10, 0, 0);
$date2->setTime(8, 0, 0);

$interval = $date1->diff($date2);
$signal = $interval->invert ? '-' : '+';
echo "<p>hours = $signal{$interval->h}</p>";

// se as datas forem de dias diferentes você vai ter que considerar os dias de diferenças

$date1 = new DateTime('2014-01-01 00:00:00');
$date2 = new DateTime('2014-01-02 12:00:00');

$interval = $date1->diff($date2);
$hours = $interval->days * 24 + $interval->h;
echo "<p>hours = {$hours}</p>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução:

 

 

<?php
   date_default_timezone_set("America/Sao_Paulo");
   $row[0] = "18:15:00";
   list($hora, $minuto, $segundo) = explode(":", $row[0]);
   $inicio = mktime();
   $fim = mktime($hora, $minuto, $segundo);
   $tempo = $fim - $inicio;
   $hora = floor($tempo/3600);
   $resto_hora = $tempo % 3600;
   $minuto = floor($resto_hora/60);
   $segundo = $resto_hora % 60;
   echo "$hora:$minuto:$segundo";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.