Calcular hora, minuto, segundo no while - Fórum CodigosnaWeb.com
Você recebeu uma nova MP, clique aqui


Calcular hora, minuto, segundo no while

Fórum sobre: MySQL, SQL, PHPMyAdmin, Banco de dados

Moderador: web

Logar para Responder
Logar para Perguntar

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 7:52 pm


tajiri
293 post(s)
SUPER VETERANO  Masculino 4p

:help pessoal, to com dor :eek de cabeça já, ja pesquisei no google todas as primeira páginas com resultados sobre o assunto, mas não conssegui procurar algo que me antenda, me da uma luz, como que eu faço para somar as horas, minutos e segundo desta base de dados,
http://novooriente.net/testes2009/dados.gif
explicando a base de dados:
cod_o2= esse é so para definir o numero d a operação, operação 1,2,3,4,5....
cod_funcionario= esse é o codigo do funcionario, onde ele vai buscar o valor em outra tabela para buscar o nome do funcionario.
hora_trabalhada=não tenho definição para esse campo ainda, mas ele está ai para eu usar mais tarde talvez.
-----
aqui começa o pepino!
entrada1= horário que o funcionario entrou na parte da manha (das 8:00:00 as 12:00:00 horas)
saida1= horário que o funcionario saiu na parte da manha. (das 8:00:00 as 12:00:00 horas)

entrada2=horário que o funcionario entrou na parte da tarde. (das 13:00:00 as 18:00:00 horas)
saida2=horário que o funcionario entro na parte da tarde. (das 13:00:00 as 18:00:00 horas)
-----
a soma do horario segue esta regra, é como um relogio ponto. o funcionario chega, bate o cartao e registra o horario no banco de dados(entrada1), ai chega na hora do almoço ele bate de novo o cartao e registra no db (saida1), ai ele chega do almoço e registra no db (entrada2) e quando sai registra no db (saida2)
a logica seria essa, até entao teria que somar as 4 horas do primeiro turno e mais 4 horas do segundo turno e tudo isso saindo de um resultado do while, OBS:esse resultado esta funcionado corretamente, so falata saber como somar as horas, minutos e segundos, com base no resultado do while.



0 mais

34 resposta(s)

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 8:00 pm

web
15350 post(s)
ADMIN  Masculino 3816p
Isso é mysql

MOVIDO: php para mysql

0 mais

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 8:04 pm

web
15350 post(s)
ADMIN  Masculino 3816p
printa ai como está saindo o resultado na tela, das horas.

0 mais

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 8:15 pm

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
segue a URL com o print do resultado:

http://novooriente.net/testes2009/dados2.gif

0 mais

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 8:38 pm

web
15350 post(s)
ADMIN  Masculino 3816p
Será sempre hora em ponto?

porque você pode fazer o seguinte

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$entrada "08:00:00";
$saida "12:00:00";
$hora_trabalhada_manha $saida-$entrada;
echo $hora_trabalhada_manha


Que irá retornar 4

0 mais

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 9:06 pm

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
não pode variar em hora, minutos e segundos!

0 mais

 Calcular hora, minuto, segundo no while em Sex Jun 12, 2009 10:04 pm

web
15350 post(s)
ADMIN  Masculino 3816p
Tem uma função no mysql que pode ajudar, subtime() essa função calcula a diferença entre as horas

Fiz uma tabela aqui com 2 valores

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
(`var1`, `var2`)
('10:20:00', '11:00:00');

No caso quero saber a diferença entre os 2 horários, ai fiz o seguinte

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
SUBTIME(var2,var1) AS resultado

No while eu adiciono: $resultado, que vai retornar: 00:40:00

0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 12:52 am

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
opa, cara esse ta dificil de entender, é que nunca fiz isso, e me parece que mecher com calculo de hora é duro a queda! :-)
mudei uma coisa, agora eu consegui criar um script que entra com a hora ai ele sai assim na tabela

cod_funcionario | turno1 | turno2
-----------------------------------------------------------------
1 | 04:00:00 | 00:00:00
1 | 04:00:00 | 04:00:00
1 | 04:00:00 | 00:00:00

até aqui tudo bem!

agora ele tem que somar o turno 1 e 2 do resultado while e dar o total de horas no final de cada coluna turno1 e turno2.
Depois somar os dois subtotais e dar um resultado total, expliquei isso só para vc entender a logica.

obs: nesse resultado while, eu defino por data, isso esta ok e na linha do while esta assim:

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?php
while($dados mysql_fetch_array($res2)) { $contador ++;
extract($dados);
?>


o que eu nao entendi é aquela SUBTIME(var2,var1) AS resultado como devo usar isso? eu devo criar algo assim:

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?
$sql mysql_query("SUBTIME(var2,var1) AS resultado ");
$dados=mysql_fetch_array($sql);
?>


cara desculpa mesmo, mas nunca mexi com soma de hora, só em valor monetario, e numeros simples... :shock

0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 9:28 am

web
15350 post(s)
ADMIN  Masculino 3816p
Vamos supor que a pessoa trabalho no turno da manhã, então você tem hora de entrada ( var1 ) e hora de saída ( var2 )

var1 = 08:30:00
var2 = 12:00:00


Isso dá 03:30:00 de hora trabalhada, portanto, se você vai ter uma coluna no while para hora trabalhada seu select seria:

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
SELECT var1, var2, SUBTIME(var2,var1) AS resultado FROM suatabela

Dentro do while você teria

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
echo "$var1$var2$resultado<br>"


0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 4:51 pm

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
opa, velho ai no codigo acima vc ta me mostrando o uso dos SUBTIME, é para diminuir né? e se eu fosse somar as horas, qual função devo usar?

obs: velho olha só eu vou dar uma sugestão de artigo para vc, é que não tem nada web que fale sobre isso, então encontrei algo em ingles, e coloquei o post para vc ver, é um codigo bem simples para somar horas e dar um resultado acumulativo de horas, e acho que para esta aplicação vc poderia ter algo parecido, sei que o forum não tem esse intuito, mas fica a seu critério se quiser tirar ou não esta página, como vc me ajudou muito em varias coisas, acho que vc deveria postar algo assim para compartilhar...

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?
$times = array(
  "23:00:00"//aqui vai o valor da sua tabela
  "08:00:00"//aqui vai o valor da sua tabela
);

$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}";
?>



0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 5:05 pm

web
15350 post(s)
ADMIN  Masculino 3816p
O fórum é para isso mesmo, compartilhar conhecimento.

Quanto a dúvida, se você já tem as horas trabalhadas nos 2 perídos, você pode trabalhar com uma função. Montei uma base com esse script que você passou.

A função

O objetivo da função é pegar as horas trabalhadas, somar uma com a outra, e printar o resultado.
Você coloca essa função fora do while.

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?
function soma_horas($hora1$hora2) {
$times = array(
$hora1//aqui vai o valor da sua tabela
$hora2//aqui vai o valor da sua tabela
);
$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;

if(strlen($minutes)==1) {
$minutes "0".$minutes;
}
if(strlen($seconds)==1) {
$seconds "0".$seconds;
}
return "{$hours}:{$minutes}:{$seconds}";
}
?>


A chamada para a função é a seguinte:

Veja um exemplo * Teste só a função e a chamada antes de usar no seu sistema

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
<?php
echo soma_horas("04:55:00""04:00:01");
?>


No caso ai, a primeira é a hora trabalhada pela manhã, a segunda pela tarde.

No uso, você irá chamar esse echo dentro do seu while, onde for mostrar a soma das horas.

0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 8:44 pm

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
opa, cara deu certinho :) so falta uma coisa, como que eu somo o total do turno1 e turno2 de todos os dias que forem selecionados no while por data, eu printei ai para entender melhor!

http://novooriente.net/testes2009/relogioponto2.gif

valew velho!

0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 9:36 pm

web
15350 post(s)
ADMIN  Masculino 3816p
Isso é meio uma gambiarra, mas deve servir

Antes do while coloca o seguinte

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$times = array(); 

Com isso estamos iniciando o array $times

Esse valor em vermelho da figura, que é o total de hora trabalhada de um usuário vai ter que entrar como valor no array, portanto, dentro do while fica o seguinte:

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$times[] = "$variavel_do_total"

Essa variável vai conter o valor do total "mostrado em vermelho"

Ai fora do while, você chama o seguinte código

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$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;
if(strlen($minutes)==1) {
$minutes "0".$minutes;
}
if(strlen($seconds)==1) {
$seconds "0".$seconds;
}
echo "{$hours}:{$minutes}:{$seconds}"



0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 10:54 pm

tajiri
293 post(s)
SUPER VETERANO  Masculino 4p
velho me diz uma coisa essa variavel que vc ta me dizendo $times[] = "$variavel_do_total"; por acaso seria isso $times[] = "$dados[turno1],$dados[turno2] "; pois se for, ele esta dando uns valores estranhos (5:30:00 9:45:50 13:45:50 ), e se for apenas colocar o $times[] = "$variavel_do_total"; ele sempre esta voltando 00:00:00? :-x

0 mais

 Calcular hora, minuto, segundo no while em Dom Jun 14, 2009 10:59 pm

web
15350 post(s)
ADMIN  Masculino 3816p
Como disse acima, no gif você deixou um valor em vermelho em cada linha, que imagino já ser a soma dos valores da coluna.

Esse valor aparece por meio de uma variável, ex.: $total

Para que funciona, cada loop no while deve ter o seguinte

Selecionar   Numerar   Testar HTML   Testar PHP   Testar MySQL   Como Funciona
$times[] = "$total"


0 mais

Resposta Rápida

   


 Busca Dinâmica

Clique em alguma palavra-chave para buscar, ou busque uma frase na caixa de pesquisa a seguir.

Calcular hora, minuto, segundo no while



Próximo

Logar para Responder
Logar para Perguntar




Voltar para MySQL

CodigosnaWeb   CodigosnaWeb/forum   codigosnaweb HOTMAIL