Ir ao conteúdo
  • Cadastre-se
Joaovitordpf

PHP Calcular o tempo gasto em horas.

Recommended Posts

Estou criando um formulário para saber quanto tempo o cliente levou para resolver o seu problema, desse modo criei dois input tipo time, o de entrada no suporte e o de saída, desse modo ele grava no meu banco de dados essas duas informações. 

Eu queria calcular esse intervalo de horas tipo fazer a saída menos a entrada pra chegar nesse intervalo, por exemplo:

 

Entrada = 13:33

Saída = 14:33

Saída - Entrada = 1:00 

Tempo total: 1 hora

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algo bem simples apenas para elucidar o caso:

 

$h1 = strtotime("13:33:00");
$h2 = strtotime("14:33:00");
$ht = $h2 - $h1;

echo "O total de horas foi " . ($ht / 3600) . " horas trabalhadas.";

Primeiramente converte a string para time, faz o cálculo entre as duas e depois, como essa função retorna a data em segundos e como você quer saber quantas horas foi de intervalo, você divide por 3600 que é a quantidade de segundos que uma hora possui.

 

Evita usar o tipo time nos inputs, nem todos os navegadores reconhecem. Melhor utilizar um type text.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Joaovitordpf

Pode-se criar uma função para calcular.

 

Por exemplo:

function diferenca($inicio , $fim , $saidaFormatada = '%a' ){

    $data1 = date_create($inicio);
    $data2 = date_create($fim);
    
    $interval = date_diff($data1, $data2);
    
    return $interval->format($saidaFormatada);
}

$diferenca = diferenca("2018-01-17 19:30:00" , "2018-01-17 20:30:00" , $saidaFormatada = '%h');
echo $diferenca ." hora(s)";

Você pode usar diversas  formatações. 

'%y Year %m Month %d Day %h Hours %i Minute %s Seconds' =>  1 Year 3 Month 14 Day 11 Hours 49 Minute 36 Seconds
 '%y Year %m Month %d Day'                              =>  1 Year 3 Month 14 Days
 '%m Month %d Day'                                      =>  3 Month 14 Day
 '%d Day %h Hours'                                      =>  14 Day 11 Hours
 '%d Day'                                               =>  14 Days
 '%h Hours %i Minute %s Seconds'                        =>  11 Hours 49 Minute 36 Seconds
 '%i Minute %s Seconds'                                 =>  49 Minute 36 Seconds
 '%h Hours                                              =>  11 Hours
 '%a Days                                               =>  468 Days

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Paz Deu certinho bro, fiz o calculo antes de gravar já e depois pra apresentar ficou fácil! Valeu!

 

   

 $entrada = $_POST["entrada"];
    $saida = $_POST["saida"];
    echo($entrada."<br>");
    echo($saida."<br>");
    
    $total= strtotime($saida.":00") - strtotime($entrada.":00"); // 3600
    //echo($total."<br>");
    $totalemminutos = $total / 60;

 

 

adicionado 0 minutos depois

@DiF Valeu irmão! Nas próximas utilizarei... Abraço

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×