1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP - contas com TIME() - somar TIMES para termos um resultado

Discussão em 'Web Development' iniciada por Consolas, 2 de Junho de 2008. (Respostas: 5; Visualizações: 2859)

  1. Consolas

    Consolas Power Member

    Olá pessoal!

    Quero fazer contas com tempo: tenho numa base de dados dois campos definidos como TIME.

    Ao fazer o query, faço TIMEDIFF e tenho o resultado da subtracção de um campo pelo outro.

    Os resultados são

    00:00:07
    00:00:20
    00:00:48

    O que quero é somar todos os resultados para no final me dar algo como 00:01:23 por exemplo.

    Alguém me ajuda?!??!

    Já tentei somar simplesmente ambos os campos mas dá sempre zero.
     
  2. CrazyBomber

    CrazyBomber Power Member

    Anota o tempo de início.
    Depois soma todos esses timediff's ao tempo de inicio e voilá, tens o tempo final :)

    EDIT:
    Epa esquece, não era nada disto que querias :sad:
    Vou ver se encontro alguma coisa...

    Bem, não encontrei nada para fazer isso, mas algo "à mão" também deve servir...
    Supondo que é algo que demora SEGUNDOS ou MINUTOS (e não HORAS):

    $mins = floor( $time / 60 );
    $secs = $time % 60;

    echo $mins . ' : ' . $secs;

    Não testei, mas deve (em teoria) funcionar :sad:
     
    Última edição: 2 de Junho de 2008
  3. Consolas

    Consolas Power Member

    Obrigado pela ajuda.

    A questão aqui é que vou ter intervalos como referi:

    00:00:03
    00:00:05

    etc.

    Estes intervalos são provenientes de uma base de dados e em cada linha tenho um. O que quer, em teoria, é simples: é agarrar em todos e somá-los. Claro que quando os segundos passam de 60, isto aumentaria um minuto..etc etc
     
  4. Consolas

    Consolas Power Member

    Obrigado colega!

    Vou já cuscar esse site.
     
  5. hostmake

    hostmake Power Member

    Eu posso-te fazer um código para isso, não me parece que haja algo assim tão especifico no PHP, podes é converter esses formatos para outros que o PHP consiga trabalhar, mas entreti-me a fazer o código, aqui fica:

    PHP:
    <?php

    $t
    [1] = "00:00:23";
    $t[2] = "00:23:33";
    $t[3] = "01:20:44";

    foreach (
    $t as $campo => $valor) {
        
    $valor explode(":",$valor);
        if (
    $s_f+$valor[2] > 60) {
            
    $m_f $m_f 1;
            
    $temp 60 $s_f;
            
    $valor[2] = $valor[2] - $temp;
            
    $s_f 0;        
        }
        
    $s_f $s_f +$valor[2];
    }
    foreach (
    $t as $campo => $valor) {
        
    $valor explode(":",$valor);
        if (
    $m_f+$valor[1] > 60) {
            
    $h_f $h_f 1;
            
    $temp 60 $m_f;
            
    $valor[1] = $valor[1] - $temp;
            
    $m_f 0;        
        }
        
    $m_f $m_f +$valor[1];
    }

    foreach (
    $t as $campo => $valor) {
        
    $valor explode(":",$valor);
        
    $h_f $h_f $valor[0];
    }

    echo 
    $h_f.":".$m_f.":".$s_f;

    ?>
     

Partilhar esta Página