Ir para conteúdo

Arquivado

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

valtinho2005

Conta entre três horários

Recommended Posts

Bom dia, pessoal!

 

 

Tenho um formulário em PHP que eu faço cadastro de Ordem de Serviço. Porém, hoje, o cadastro eu colocar as seguintes informações:

 

hora inicial (HH:MM)

hora final (HH:MM)

intervalo (HH:MM)

hora total (HH:MM)

 

(todos no mesmo formato e com máscara, ou seja, não existe como digitar algo diferente que [0-9][0-9]:[0-9][0-9]

 

tem mais coisa, mas não cabe a dúvida.

Hoje o funcionário aponta essas informações manualmente, porém gostaria que a informação hora total fosse calculada automática, exemplo:

 

hora inicial: 08:00

hora final: 18:00

intervalo: 01:30

hora total = final - inicial - intervalo = 08:30

 

compreenderam? estou com dificuldade para fazer, achei exemplo usando MKTIME e strtotime, porém somente vi exemplo e explicações quando o camarada coloca um horário e colocar o quando vai somar/subtrair, no meu caso eu estou apontando 3 horários e quero a diferença entre eles.

 

Agradeço desde já a atenção de todos!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode colocar 2 horários para subtrair, use o strtotime nos 3 horários e faça como você colocou:

 

hora total = final - inicial - intervalo;

 

E depois use o:

 

date('H:i:s',$horaTotal);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem, mas seria isso?

$final = strftime("%H:%M", strtotime($final));
$inicial = strftime("%H:%M", strtotime($inicial));
$invervalo = strftime("%H:%M", strtotime($intervalo));

%total = $final - $inicial - $intervalo;

echo date('H:i',%total);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, até consegui fazer a conta, mas como mostrar a variável total em formata H:m?

 

olha como ficou:

$inicial = '08:00';
$final = '18:00';
$intervalo = '01:00';

$inicial = strtotime($inicial); 
$final = strtotime($final); 
$intervalo = strtotime($intervalo); 

$total = $final - $intervalo - $inicial;


echo strftime("%H:%M", $total); (resultado = 03:00, mas deveria ser 09:00)

estou testando nesta página com valores fixos: valterleonardo.com.br/calculartempoos.php

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.