Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal, estou desenvolvendo um sistema de chamado aqui e estou com um problema, preciso saber quantas horas um chamado demorou para ser encerrado.
Eu sei que tenho que salvar hora e data da aberta e de encerramento, no entanto como vou calcular isto?
Preciso da diferença de horas por exemplo, Chamado aberto 23/05/2014 as 08:45 - Chamado Encerrado as 23/05/2014 as 09:30
Ai eu faço o cálculo e preciso do resultado no caso: 45 minutos...
Eu costumo fazer isso tudo no banco de dados (uso o MySQL), a pouco tempo eu tive de seguir na mesma lógica, quanto tempo um serviço demorou para ser encerrado, neste caso eu tinha dois campos do tipo DATETIME, usei um [inline]TIMESTAMPDIFF(SECOND, horario_abertura, horario_encerramento)[/inline] esta função retorna a quantidade de segundos entre uma data e outra, aí converti usando a função SEC_TO_TIME(), [inline]SEC_TO_TIME(TIMESTAMPDIFF(SECOND, horario_abertura, horario_encerramento))[/inline] que converte os segundos em tempo, podendo chegar até 838 horas.
Pessoal agora meu patrão mudou, ele quer é a quantidade de horas sem os dias :/ ou seja se demorou um dia e uma hora para ser atendido então 24 horas, alguma luz?
Há outra forma além do #3, pode usar TIMEDIFF(data_final, data_inicial)
Da uma olhada na classe DateTime, é muito bom e fácil manipular data com ela. Tem um método diff() que calcula a diferença entre as datas!