Ir para conteúdo

POWERED BY:

Arquivado

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

gust.php

Diferença entre data e hora

Recommended Posts

Fala pessoa,

Tenho uma tabela com as seguintes colunas DATA, tipo DATE, e uma outra coluna HORA, tipo TIME. Os dados dentro dessas colunas são armazenados da seguinte maneira:

DATA: 2016-09-22

HORA: 15:00:00

Tenho mais 2 colunas com os mesmo tipo de dados sendo DATA_FIM e HORA_FIM. To precisando ver a diferença em horas da DATA_INICIO, HORA_INICIO para DATA_FIM, HORA_FIM. To tentando assim:

        $datainicio = $datai->format('Y-m-d');
        $horainicio = $horai;
        
        $datafinal = $dataf->format('Y-m-d');
        $horafinal = $horaf;
        
        $dataformada1 = $datainicio ." ". $horainicio;
        $dataformada2 = $datafinal ." ". $horafinal;
 
 Se eu der um echo em $dataformada1, o resultado é esse:   "2016-09-22 10:00:00"
Se eu der um echo em $dataformada2, o resultado é esse:   "2016-09-22 13:00:00"

Até aqui tudo bem. Agora, eu quero a diferença em HORAS das duas datas. Tem que ser de 3 horas no caso acima.

To tentando assim:

 $diff = \strtotime($dataformada2) - \strtotime($dataformada1);
 $diferenca = ceil($diff/(3600*24));

O resultado ai ta saindo assim: -18.

To fazendo o que de errado ai? Alguem pode ajudar?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, utilize para data e hora a mesma coluna (datetime), vai te facilitar o trabalho. A diferença é realizada com o método DateTime::diff();

http://forum.imasters.com.br/topic/484930-strtotime-calculando-errado/?p=1925980

Se quiser o número absoluto (positivo), basta colocar o segundo parâmetro como true.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Gabriel, Obrigado!

você tem razão com a coluna datetime, vou deixar para rever isso depois, na hora de melhorar o sistema, agora já estou no finalmente.

Obrigado, funcionou aqui.

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.