Ir para conteúdo

POWERED BY:

Arquivado

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

Douglas Fabiano

Subtrair horas/minutos/segundos

Recommended Posts

Olá pessoal.

 

Estou precisando ver a diferença de tempo (hora, minuto e segundo) entre campos de uma base mysql no php.

 

Meus campos ja estão no formato hora (na base).

 

fiz um teste de um campo que o horário inicial é: 15:12:00 e hora Final é: 15:30:00

 

Porem meu resultado final ficou assim: "0" zerado...

 

Vejam meu código:

 

<?php
$HoraIni=($hora_inicial);
$HoraFim=($hora_fim);
$result=($HoraIni-$HoraFim);
echo ($result);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$HoraIni = strtotime($hora_inicial);
$HoraFim = strtotime($hora_fim);
$result = $HoraFim - $HoraIni;
echo $result;
?>

Isso irá retornar os segundos entre uma hora e outra.

 

A melhor forma de transformar em timestamp é direto no SQL, mas como eu não sei quais são todas as informações da sua tabela usei a função strtotime.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Subtrair datas não é o mesmo que subtrair números comuns. Existem classes prontas no PHP que fazem isso por você.

Eu recomendo o uso da função mktime(). Procure sobre ela e faça uma boa busca no fórum, pois já temos muito conteúdo a respeito.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei que a hora final seria maior que a hora inicial.

 

Se for o contrário deixe assim:

 

$HoraIni = strtotime($hora_inicial);
$HoraFim = strtotime($hora_fim);
$result = $HoraIni - $HoraFim;
echo $result;

 

Se em vez de apenas os segundos você quiser exibir a quantidade de dias, horas, minutos e segundos use o método diff da classe DateTime.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo.... 18 minutos o resultado

 

<?php

$HoraIni=strtotime($hora_inicial);

$HoraFim=strtotime($hora_fim);

$result=($HoraFim-$HoraIni)/60;

echo $result;

?>

 

Porem ele resultou : 18

 

Será possivel ele retornar como minutos no formato: "00:18:00"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a versão do seu PHP? Se for 5.3 você pode usar a classe DateTime pra comparar as datas e pegar horas, minutos, etc.

 

Se não for você pode fazer os cálculos manualmente, dê uma olhada neste artigo de um blog:

 

http://clares.wordpr...-entre-2-datas/

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.