Hola a todos...
Tengo la siguiente funcion para restar horas:
Código PHP:
$hora_23 = "00:00:01";
function calc_hora3($hora_calc3,$s_r3,$hora_op3){// PARAMETROS 1- Hora , 2- Sumar o restar (+ o -) , 3- Hora a sumar o restar
$hora_13 = explode(":",$hora_calc3);
$hora_23 = explode(":",$hora_op3);
if($s_r3 == "-"){
$hora_f3 = $hora_13[0] - $hora_23[0];
$min_f3 = $hora_13[1] - $hora_23[1];
$seg_f3 = $hora_13[2] - $hora_23[2];
if($hora_f3>23){$hora_f3 = 24 - $hora_f3;}
if($min_f3<=0){$min_f3 = 60 + $min_f3;$hora_f3 = $hora_f3 - 1;}
if($seg_f3<=0){$seg_f3 = 60 + $seg_f3;$min_f3 = $min_f3 - 1;}
//===================================================
if($hora_f3>=0 && $hora_f3<10){$hora_f3 = "0".$hora_f3;}
if($min_f3>=0 && $min_f3<10){$min_f3 = "0".$min_f3;}
if($seg_f3>=0 && $seg_f3<10){$seg_f3 = "0".$seg_f3;}
}
if($s_r3 == "+"){
$hora_f3 = $hora_13[0] + $hora_23[0];
$min_f3 = $hora_13[1] + $hora_23[1];
$seg_f3 = $hora_13[2] + $hora_23[2];
if($hora_f3>23){$hora_f3 = 24 - $hora_f3;}
if($min_f3>=59){$min_f3 = $min_f3 - 60;$hora_f3 = $hora_f3 + 1;}
if($seg_f3<0){$seg_f3 = $seg_f3 - 60;$min_f3 = $min_f3 + 1;}
//===================================================
if($hora_f3>=0 && $hora_f3<10){$hora_f3 = "0".$hora_f3;}
if($min_f3>=0 && $min_f3<10){$min_f3 = "0".$min_f3;}
if($seg_f3>=0 && $seg_f3<10){$seg_f3 = "0".$seg_f3;}
}
return $hora_f3.":".$min_f3.":".$seg_f3;
}
//Ej: $horas_comp = 03:00:00 horas
$resta_seg = calc_hora3($horas_comp,"-",$hora_23);
echo "<br>$resta_seg<br>";
En esta funcion le resto 1 segundo a la $horas_comp (03:00:00), el resultado es 02:59:59, la funcion la ejecuto cada 1 segundo pero el problema es que no me sigue restando, siempre me entrega el mismo resultado.
Si alguien me puede ayudar con esto o conoce otra forma de hacer una cuenta regresiva en php le agradeceria.
Gracias.