Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
Estou montando um sistema para marcação de ponto dos funcionário da empresa:
Estou com a seguinte dúvida:
Tenho uma base de dados onde são marcados os horarios dos funcionários(entrada/saida) no fim do dia o sistema faz um calculo e gera o saldo do dia e se foi positivo ou negativo.
Segue dados da tabela:
################################
################################
00:25:00 # Positivo
01:10:00 # Negativo
00:50:00 # Positivo
#################################
Vou montar alguns filtros para buscar os dados da tabela, e gostaria através do resultado do select somar/ou subtrair os saldo e verificar a situação final(positivo/ou negativo).
Ex:
00:25:00 + 00:50:00 = 01:15:00
01:15:00 - 01:10:00 = 00:05:00 positivo(Resultado final).
Alguem tem alguma ideia de como posso fazer para que no resultado do select venha o total do calculo dos saldos selecionados?
Desde já agradeço a todos pela atenção.
Vinícius, obrigado pela dica mas os saldos estão em formato time:
02:00:00
02:00:00 +
02:00:00
----------------
60000
Quando somo o resultado não fica como preciso.
Preciso que a soma fique igual à 06:00:00
Buscando na internet encontrei um blog:
http://angelinaweb.blogspot.com.br/2009/06/somar-horas-minutos-e-segundos-no-php.html
Nesse blog tem um código que faz o cáculo das horas, adaptei para o meu sistema e esta tudo ok.
Segue código:
$times = array(
'01:30:22',
'34:17:03',
);
$seconds = 0;
foreach ( $times as $time ){
list( $g, $i, $s ) = explode( ':', $time );
$seconds += $g * 3600;
$seconds += $i * 60;
$seconds += $s;
}
$hours = floor( $seconds / 3600 );
$seconds -= $hours * 3600;
$minutes = floor( $seconds / 60 );
$seconds -= $minutes * 60;
echo "{$hours}:{$minutes}:{$seconds}";
usa o sum para somar tudo que for positivo e tudo que for negativo em colunas separadas depois é 1 menos o outro