Olá a todos, estou atrasado para entregar um sistema porque não consigo somar dois campos datetime vindos do bd.
//---busca o fim da pausa do job diario------
$sqlfimpausa = mysql_query("SELECT fimpausajob as fim FROM jobdiario where numjobdiario ='$idjob' and sequenciajobdiario='$seqjob'");
$fim = mysql_fetch_assoc($sqlfimpausa);
$finalpausa = $fim["fim"];
//---busca o início da pausa do job diario------
$sqlinipausa = mysql_query("SELECT iniciopausajob as inicio FROM jobdiario where numjobdiario ='$idjob' and sequenciajobdiario='$seqjob'");
$inicio = mysql_fetch_assoc($sqlinipausa);
$iniciopausa = $inicio["inicio"];
//---busca o tempo total da pausa anterior do job diario------
$sqltempopausa = mysql_query("SELECT tempopausa FROM jobdiario where numjobdiario ='$idjob' and sequenciajobdiario='$seqjob'");
$pausa = mysql_fetch_assoc($sqltempopausa);
$tempopausa = $pausa["tempopausa"];
//calcula o tempo da pausa
$datetime1 = new DateTime($finalpausa);
$datetime2 = new DateTime($iniciopausa);
$diferenca = $datetime1->diff($datetime2);
$ano = $diferenca->y;
$mes = $diferenca->m;
$dia = $diferenca->d;
$hora = $diferenca->h;
$minuto = $diferenca->i;
$segundo = $diferenca->s;
$intervalo = $ano."-".$mes."-".$dia." ".$hora.":".$minuto.":".$segundo;
echo $intervalo;
Preciso somar este intervalo com o intervalo anterior para dar o tempo total do intervalo.
Já usei esta função mas ela só soma as horas, minutos e segundos:
$times = array($tempopausa, $intervalo);
$seconds = 0;
foreach ( $times as $time ){
list( $g, $i, $s ) = explode( ':', $time );
$seconds += $g * 3600;
$seconds += $i * 60;
$seconds += $s;
}
$hours = floor( $seconds / 3600 );
$seconds -= $hours * 3600;
$minutes = floor( $seconds / 60 );
$seconds -= $minutes * 60;
$totalpausa = $hours.":".$minutes.":".$seconds;
Se a pausa for maior que 23:59:59 ela não acrescenta um dia.
O que eu faço?