Ir para conteúdo

POWERED BY:

Arquivado

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

Roberto_S_Luz

Somar horas com PHP e JavaScript (AJAX)

Recommended Posts

Olá galera, irei postar aqui um probleminha basico, mas...se não sei fazer né...o jeito é apelar para uma boa alma caridosa...

 

Bom... tenho um sistema (ainda em desenvolvimento) que terá que realizar a seguinte tarefa.

 

É um sistema para controle de transporte coletivo, e nele existem os motoristas (claro né, os onibus não vão andar sozinhos...pelo menos por enquanto não)...bom...resumindo, tenho que...informar a hora de entrada e saida (fornecidos por cada motorista no final de cada dia), onde terei que...calcular o total de horas trabalhadas (inicial - final) e se o fulano de tal trabalhou mais que 8 horas, será acrescentado como horas extras o restante após as 8 horas.

 

Exemplo:

 

Informar a hora inicial = 07:00

Informar a hora final = 17:00

Total horas trabalhas = 10:00

Horas Extras = 02:00

 

Onde...essas 2 horas extras terão que ficar acumulando até o final do mês para que seja somado todas e multiplicado pelo valor da hora extra (bom...esse é outro caso)

 

Bom...o que eu não sei nem pra onde vai é...fazer o processo de soma/divisão/multiplicação de horas nem em PHP e nem em JavaScript (pois essas informações tem que serem fornecidas em tempo real).

 

Bom...para quem já meche com isso, creio que não seja um bicho de 7 cabeças...mais para quem ainda não sabe...é um Deus nos acuda... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Se alguem puder me dar uma dica para pelo menos que rumo seguir...ficarei grato. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

Desde já...um abraço a todos e obrigado pela atenção e desculpe pelo livro que escrevi aí... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim:

 

$horas_normal = 8; // Nº de horas normais
$valor_hora_extra = 50.10; // Valor da hora extra

$inicio = '07:00'; // Entrada
$fim = '17:00'; // Saída

$segundos_ini = strtotime(date('Y-m-d ').$inicio);
$segundos_fim = strtotime(date('Y-m-d ').$fim);
$diferenca = (int)(($segundos_fim - $segundos_ini) / 60);
$extra = 0;
$receber = 0;
if ($diferenca > $horas_normal) {
$extra = ($diferenca - $horas_normal);
$receber = $extra * $valor_hora_extra;
}
echo "Fulano trabalhou ".$diferenca." horas";
if ($extra > 0)
echo "Fulano trabalhou ".$extra." horas além do expediente e deve receber R$ ".$receber." por isso";

Com isso você já tem o nº de horas trabalhadas! ^^

Também informa o valor a receber se trabalhou horas extras

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa..valeu emu amigo...isso irá me ajudar bastante... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

O seu codigo irei testa-lo e adapta-lo ào sistema que estou a desenvolver...qualquer coisa em caso de duvida voltarei a lhe incomodar mais um tikim, em caso de sucesso, postarei a minha solução... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Mas...desde já....agradeço por sua ajudar. Muito Obrigado!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops...eu não quiz dizeremu não...e sim meu amigo, me desculpe...

 

Só uma dúvida...

Seria dificil fazer com que, após eu digitar a hora inicial e a final, nos campos de TotalHoras e HorasExtras já fossem carregados automaticamente, tipo algo feito com JavaScritp ou coisa do tipo?

 

Bom...mais uma vez...agradeço a você...

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo.. infelizmente não sei muito de JS pra fazer esse script agora pra você precisaria pesquisar um pouquinho a manipulação de datas e horas do objeto Date do JS...

 

Talvez isso te ajude:

http://www.criarweb.com/artigos/301.php

http://www.linhadecodigo.com.br/Artigo.aspx?id=1003

http://pt.wikibooks.org/wiki/java script:_Objeto_Date

http://www.google.com.br/search?q=objeto+d...lient=firefox-a

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza meu amigo... agradeço por suas dicas e por perder um pouco do seu tempo aqui com essa duvida, precisando pode contar comigo...

Irei pesquisar mais, daí quando tiver a solução postarei aqui, para o caso de você ou outra pessoa precisar...

Valeu cara... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo ~TiuTalk~

 

Me desculpe por depois de um certo tempinho voltar à esse mesmo topico, mas...nesse codigo que passastes aí, no final ele da um total de 600 horas, mas...de onde ele tira essas 600 horas???

 

Gostaria de fazer algo da seguinte maneira:

 

Inserir manualmente a hora inicial e a final, e deixar os calculos de total de horas e horas extras para o sistema fazer, daí as horas extras iram sendo acumuladas por exemplo até o dia 30 de cada mês, depois calcular o valor a ser pago por elas.

 

É dificil fazer isso com PHP???

 

 

Tive que dar uma paradinha por um tempinho, mas agora irei estudar mais o exemplo que passastes aí, mais desde já, estou postando essa duvida aí, caso puder me responder...

 

Desde já...agradeço por sua ajuda... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Abraços... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo ~TiuTalk~

 

Me desculpe por depois de um certo tempinho voltar à esse mesmo topico, mas...nesse codigo que passastes aí, no final ele da um total de 600 horas, mas...de onde ele tira essas 600 horas???

Brother, não são horas são minutos.

 

600/60 = 10

 

10:00 horas

 

T+++

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de fazer algo da seguinte maneira:

 

Inserir manualmente a hora inicial e a final, e deixar os calculos de total de horas e horas extras para o sistema fazer, daí as horas extras iram sendo acumuladas por exemplo até o dia 30 de cada mês, depois calcular o valor a ser pago por elas.

 

É dificil fazer isso com PHP???

Não, extremamente facil.

Basta criar um formulário e pegar os dados do formulário e jogar no script.

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.