Ir para conteúdo

POWERED BY:

Arquivado

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

by_stoco

Calcular hora....

Recommended Posts

Cora colegas de forum......

 

Gostaria que alguém me ajudasse na seguinte situação!

 

Tenho 2 campos em meu BD que guardam a hora de entrada e a hora de saída de um determinado usuário ('hora_entrada' e 'hora_saida') que estão no formato TIME no MySQL.

 

Gostaria de calcular o tempo gasto por este usuário.

 

A grosso modo seria: $tot_horas = $hora_saida- $hora_entrada;

 

Teria alguma forma de se fazer isso sem usar um algoritmo para transformar as horas em minutos ou vice-versa?????

 

 

Desde já agradeço a atenção de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de dizer que a solução do caro colega não funcionou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta certinha a função do AAlves :wacko:

 

Que problema ta dando ae? tem certeza que ta usando de maneira correta? posta ae pra gente ver :)

 

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá então:

 

Afunção do AAlves já está criada.

 

PHP

[*]

[*]$junta_total = diferenca($dados_ponto_data['he_manha'],$dados_ponto_data['hs_manha']);

[*]print "<script>alert('$junta_total');</script>";

[*]

Os campos do BD estão definidos como TIME.

 

A hora informada foi: 8:00:00 e 09:10:00 respectivamente!

O resultado dado pela função foi: 1.16666666667

 

Como faço para tratar esse resultado?

Ou seja, retornar 01:10:00 como diferença entre o horário de entrada e o horário de saída.

 

Grato pela atenão de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

PS: Gostaria de informar também que ao invés de dividir o resultado da diferença por 60 eu dividi por 3600.... Para retornar o valor em horas!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda sem respostas..........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros colegas de forum.....

Após um melhor estudo da forma matemática de calcular a diferença entre horas convertando tudo para segundos, consegui desenvolver uma função para o devido fim!

 

PHP

[*]function Difer_horas($hora1,$hora2){

[*] $entrada = "8:37:02";

[*] $saida ="11:53:24";

[*] $hora1 = explode(":",$entrada);

[*] $hora2 = explode(":",$saida);

[*] $acumulador1 = ($hora1[0] * 3600) + ($hora1[1] * 60) + $hora1[2];

[*] $acumulador2 = ($hora2[0] * 3600) + ($hora2[1] * 60) + $hora2[2];

[*] $resultado = $acumulador2 - $acumulador1;

[*] $hora_ponto = floor($resultado / 3600);

[*] $resultado = $resultado - ($hora_ponto * 3600);

[*] $min_ponto = floor($resultado / 60);

[*] $resultado = $resultado - ($min_ponto * 60);

[*] $secs_ponto = $resultado;

[*] return $hora_ponto.":".$min_ponto.":".$secs_ponto; 

[*]}

 

Gostaria de contar ainda com uma solução que possa melhorar este cóigo....

 

Grato pela atenção de todos......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você eh f***!você lançou a dúvida e se auto respondeu e me ajudou pra carai.to a 3 horas buscando uma solução simples, a sua foi a melhor que encontrei!pow te devo essa cara.abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aff... pq o povo acha q só o php resolve as coisas???? Tem q estudar um pouco de mysql tb

 

SELECT TIMEDIFF('23:59:59','21:52:59') as HORA;

O primeiro termo é a hora maior... o segundo a menor. você pode usar datas tb qndo a diferença é de dias.

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.