Ir ao conteúdo
  • Cadastre-se

PHP Calcular o tempo gasto em horas.


Posts recomendados

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

 

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Moderador

@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

 

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...