Jump to content
hwrry

CALCULO DE HORAS PARADAS

Recommended Posts

 Bom dia! Preciso realizar um calculo que me retorne a quantidade de horas que uma maquina ficou parada, em meu banco de dados tenho dois campo data/minutos, que são de data parada e data retorno, os mesmos estão no seguinte formato:

 

 $dataIni = '201704120850' ;

 $dataFim = '201704120955';

 

Até ai consigo fazer o cálculo com a seguinte função:

$dtIni = '201704120850';
        $dtFim = '201704140851';  
        
        $datatime1 = new DateTime($dtIni);
        $datatime2 = new DateTime($dtFim);
        
        //echo '<pre>'; print_r($datatime1); die;

        $data1  = $datatime1->format('Y-m-d H:i:s');
        $data2  = $datatime2->format('Y-m-d H:i:s');  
        
        //echo '<pre>'; print_r($data1); die;
        
        $data1 = strtotime($data1);
        $data2 = strtotime($data2);
        
        $nHoras   = ($data2 - $data1) / 3600;
        $nMinutos = (($data2 - $data1) % 3600) / 60;
        $total = sprintf('%02d:%02d', $nHoras , $nMinutos);

Share this post


Link to post
Share on other sites

e qual é a dúvida exatamente? tu diz que precisa fazer o cálculo e em seguida diz que consegue fazer o cálculo :tounge_wink:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By helkton
      oi galera tudo joinha, estou em um dilema faz horas aqui, seguinte....
      estou em um projeto para uma empresa de cursos, estou querendo fazer o seguinte, eu cadastro em meu banco MYSQL os dados do aluno, por exemplo as horas que o aluno já fez o curso
      exemplo.... tenho em meu banco a seguinte coluna - > horaPraticaCargaHoraria e a coluna horaTeoricaCargaHoraria - são campos time, ou seja só gravo as horas que o aluno já fez o curso
      então o que quero é o seguinte, somar todas as horasPraticas que o aluno já fez e depois também as horasTeoricas ai depois eu faço o if para as devidas condiçoes tipo, se o aluno a concluiu as horas pratica e teoricas esta liberado para imprimir o certificado, se não ainda não
      tipo cada curso tem a sua determinada carga horaria PRATICA e TEORICA
      explicando o que já fiz
      <?php $consultCursoAluno = "select * from cursos inner join curso_escolhido ON (cursos.idCurso = curso_escolhido.idCursoPretendidoEscolhido) where idCursoAlunoEscolhido = '$idAluno' and checkedCursoEscolhido = '1'"; $conectaCursoAluno = $conecta->query($consultCursoAluno); while($resultCursoAluno = $conectaCursoAluno->fetch_object()){?> NomeCurso:<?php echo $resultCursoAluno->nomeCurso?>//Consigo pegar os cursos que o aluno está fazendo <br> <?php $sqlCurso = "select * from carga_horaria where idAlunoCargaHoraria = '$idAluno' and idCursoCargaHoraria = '".$resultCursoAluno->idCurso."'"; $conectaCurso = $conecta->query($sqlCurso); $soma = 0; while($result = $conectaCurso->fetch_object()){//nesse while ele está transformando as horas em string e somando ele me da as horas em segundos total $horaPra = strtotime($result->horaPraticaCargaHoraria); $soma += $horaPra; $total = $soma;?> HoraNormal - <?php echo $result->horaPraticaCargaHoraria?> - - - HoraString (<?php echo $horaPra?>) <br> <?php }?> <?php echo $soma?>//O problema esta aqui, quando vou transformar esta hora que esta em segundos para a hora normal (date('H:i:s', $soma)) não transforma e quando transforma fica tipo com um hora a mais, ai da uma bagunçada <br> <?php }?>  
    • By joazinDev
      Estou tentando calcular duas horas e as vezes precisso que ela saia negativa tbm
      Exemplo:
      07:33 - 07:48 = -00:15
      Como faço isso utilizando php ?
    • By Viniciusr9
      Boa tarde pessoal,
      basicamente eu preciso do retorno de horas entre duas datas, porém tenho condições a tratar .
      basicamente tenho 2 colunas ( dt_fim e dt_ini ) que representam data final e data inicial. Preciso da diferença entre as duas retornada em uma outra coluna (hr_ausencias) , porém a cada dia posso computar no máximo 9 horas, e desconsiderar finais de semana e feriados( esses cadastrados em uma tabela) . Seria melhor tratar isso com uma Trigger , um Script PL/SQL , como me sugerem? Agradeço quem puder ajudar.
    • By marcosberaldo
      Boa noite.
       
      Estou criando um ranking de pontuação e preciso colocar uma paginação nesse ranking mas não posso fazer a paginação pelo select, pois a select tem que somar os pontos de cada jogador informados em cada registro no banco, se eu limito a select ele só vai somar os pontos dos registros da página e não todos os pontos do jogador.
       
      Dessa forma optei por fazer a select normalmente e criar um array onde eu pretendo exibir somente parte dos dados.
       
      Em resumo, consegui fazer da seguinte forma:
      $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 0; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Esse código me retorna 10 registros do array, até ai tudo bem, mas eu gostaria de exibir apenas um intervalo, por exemplo do registro 5 ao 9. 
      Tentei da seguinte forma:
      $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 5; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Dessa forma ele me mostra apenas 5 registros, mas ele sempre me mostra os 5 primeiros e eu preciso carregar os últimos 5.
       
      Como faço???
    • By leonardorocha
      Prezados, boa tarde!
       
      Tenho uma apresentação que imprime determinados valores de acordo com a data cadastrada no sistema.
       
      O código abaixo está funcionando para algumas datas e outras não. Um exemplo é o intervalo de datas 01/03/2019 a 30/06/2019
       
      Este nunca é executado conforme o código abaixo. Se alguém souber aonde encontra-se o erro por favor me informe.
      <div class="row justify-content-md-center"> <?php foreach ($model->getItems() as $calendar) { $dataI = date("d/m/Y", strtotime($calendar->start_date)); $dataF = date("d/m/Y", strtotime($calendar->end_date)); $titulo = $calendar->title; ?> <div class="col-md-3 col-sm-6"> <div class="item-calendario"> <div itemprop="event" itemscope itemtype="http://schema.org/Event"> <?php $atual = strtotime(date("d/m/Y")); $periodo = array('inicio' => strtotime($dataI), 'fim' => strtotime($dataF)); if($atual >= $periodo['inicio'] && $atual <= $periodo['fim'] ){ echo '<div class="icone-calendario"><i class="fa fa-clock-o fa-lg" aria-hidden="true" style="color:#0661ab"></i></div> <div class="status-calendario agora"><span>AGORA</span></div>'; } if($atual < $periodo['inicio'] && $atual < $periodo['fim'] ){ echo '<div class="status-calendario"><span>EM BREVE</span></div>'; } ?> <div class="periodo-calendario" itemprop="startDate" content="{{startDateIso}}"> <span><?php echo $dataI . ' a ' . $dataF ?></span> </div> <div class="texto-calendario"> <a href="<?php echo $calendar->url; ?>" itemprop="url"> <span itemprop="name"><?php echo $titulo; ?></span> </a> </div> </div> </div> </div> <?php } ?> </div>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.