gust.php 1 Denunciar post Postado Setembro 22, 2016 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
Gabriel Heming 766 Denunciar post Postado Setembro 22, 2016 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
gust.php 1 Denunciar post Postado Setembro 22, 2016 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