Ir para conteúdo

POWERED BY:

Arquivado

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

PacketSpy

Somatoria de Horas e minutos

Recommended Posts

Olá galera!

 

Seguinte toh tentando manipular horas e minutos mais tah dificil...

 

Preciso somar quantidades de horas e minutos trabalhadas durante um periodo, tipo sistema de hora extra!

O camarada vai lançar valores referentes a QUANTIDADE de horas e minutos no BD...

 

Exemplo:

 

valor1 = 02:10

valor2 = 05:10

valor3 = 05:20

valor4 = 15:00

valor5 = 01:15

 

total 28:55

 

Ou seja ... ao final de um periodo uma determinada pessoa trabalhou 28 horas e 55 minutos.

Fiquei tentando fazer com timestamp ... mas num rolou =/

 

 

Alguem pode me dar uma sugestão ???

 

Abraços e boa noite!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz isto assim:

 

$hora1 = "01:00:00";
$hora2 = "02:05:15";
$hora3 = "01:00:00";

$dados_hora1 = explode(":", $hora1);
$dados_hora2 = explode(":", $hora2);
$dados_hora3 = explode(":", $hora3);

$soma_hora = $dados_hora1[0]+$dados_hora2[0]+$dados_hora3[0];
$soma_minutos = $dados_hora1[1]+$dados_hora2[1]+$dados_hora3[1];

$horas_somadas = mktime ($soma_hora, $soma_minutos, 0, 0);

echo date("H:i", $horas_somadas);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos!

 

Paulo, perdoe-me! Na verdade não testei com timestamps, tentei fazer a conta passando tudo para segundos e depois dividindo por 3600.

Cheguei num resultado aproximado. Tive uma variação entre 10 a 15 minutos no valor final =/

 

LaBoss, muito boa a sua solução, porém nesse caso não funciona! Oo

No caso você utilizou 3 valores de horas por exemplo. Experimente aumentar o valor da variavel $hora1 para "23:00" e veja o resultado ... deveria produzir um resulatdo assim: "26:05" em contra partida ele produz "02:05" ou seja quando chegou em 24:00 ele vira o dia e começa de novo.

 

Na verdade o que eu preciso é somar todas as datas de um periodo e chegar num valor parecido com esse por exemplo: "130:27", ou seja a pessoa trabalhou 130 horas e 27 minutos do dia X até o dia XX

 

Meio complicadinho meu caso neh ?! :blink:

 

Abraçoss pessoal!

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.