hola buenas tardes tengo un problemilla en un codigo de calculo entre 2 horas
lo que pasa es que si calcula bien pero cuando pasa mas de un día no los cuenta
los datos de las horas los trae de registros en la base de datos dependiendo de los diferentes estados (1,2,3,4,5)
ejemplo de resultado: 0 dias 0: 6:43 hrs
y cuando pasa mas de un dias quedaria haci: -0 dias 0: 6:43 hrs
no sale de 0 los dias solo quiero que cuente los dias tambien
Código PHP:
Ver original<?php
function resta($inicio, $fin){
return $dif;
}
function str2ts( $time ) {
return mktime((int
)$atime[0], (int
)$atime[1], (int
)$atime[2]); }
function ts_time_diff( $ts_after, $ts_before ) {
global $pers;
$str_diff = '';
$ts_diff = $ts_after - $ts_before;
if( $bln_neg = $ts_diff < 0 )
$ts_diff *= -1;
for( $i = 0; $i < count($pers) - 1; $i ++ ) { $str_diff = sprintf($pers[$i][1], $ts_diff % $pers[$i][0]). $str_diff; $ts_diff = (int)$ts_diff / $pers[$i][0];
}
$str_diff = sprintf($pers[$i], $ts_diff). $str_diff; return ($bln_neg ? '' : ''). $str_diff;
}
function buscaHora($codigo,$folio,$hora,$r=false){
include_once 'mySQLData.php';
$info2[0] = '1';
$info2[1] = '2';
$info2[2] = '3';
$info2[3] = '4';
$info2[4] = '5';
$min[0] = 30;
$min[1] = 60;
$min[2] = 120;
$min[3] = 180;
$min[4] = 210;
$key = 0;
foreach ($info2 as $k => $v) {
if($v == $codigo)
$key = $k;
}
if($key>0){
$key--;
$base = new mySQLData();
$sql = "SELECT hora FROM tabla WHERE id = '{$id}' AND codigo = '{$info2[$key]}' ";
$result = $base->consulta($sql);
if($r){
return ( str2ts($hora)-str2ts($arreglo['hora']) )/60 > $min[$key+1] ? 1:0;
}
else{
if(ts_time_diff( str2ts($hora),str2ts($arreglo['hora']))!='0')
echo ts_time_diff( str2ts($hora),str2ts($arreglo['hora']) );
else
return 0;
}
}
else{
return 0;
}
}
?>
de antemano muchas gracias