Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2008, 12:38
ivanucho
 
Fecha de Ingreso: enero-2008
Ubicación: Cuernavaca,Morelos
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con la conversión de fecha tipo dias-horas-minutos-segundos

Hola buen dia al foro.

Tengo un pequeño problema que yo creia que estaba solucionado, ya que habia buscado información para su solución , sin embargo cuando la cantidad de tiempo va en aumento no me arroja correctamente los datos.

Dejen y les explico, al no encontrar una función que me arrojara la dieferencia de tiempos es decir la duración de atención de cierto servicio en 00 dias / 00 hras / 00 min / 00 seg cree el código que abajo se muestra donde convierto los segundos arrojados por el query del promedio de la diferencia entre dos fechas tipo datetime, la cual dependiendo la cantidad la convierto a su correspondiente en el formato que antes mencione.

//Query para conocer el tiempo promedio de respuesta.


$qtpromresp=mysql_query("SELECT fechaA-fecha as prom_resp from reportes inner join bdmod_reporte on reportes.no_reporte = bdmod_reporte.no_reporte where id_tecnico='$id_tecnico' and fechaT !='0000-00-00 00:00:00' and fecha BETWEEN '$fech' and '$fechf'");
$data_tpromresp=mysql_fetch_object($qtpromresp);
$time_prom_resp =$data_tpromresp->prom_resp;


$time_segundos_absolut=0;
$time_minutos_absolut=0;
$time_hora_absolut=0;
$time_dias_absolut=0;

if($time_prom_resp <=59){
$time_segundos_absolut=round($time_prom_resp );
}else{
if($time_prom_resp >=60 and $time_prom_resp <=3599 ){
$time_minutos=$time_prom_resp/60;
$time_minutos_absolut=floor($time_minutos);
$time_minutos_decimal=$time_minutos-$time_minutos_absolut;
$time_segundos=$time_minutos_decimal*60;
$time_segundos_absolut=round($time_segundos);

}else{
if($time_prom_resp >=3600 and $time_prom_resp<=86399)
{
$time_hora=$time_prom_resp/3600;
$time_hora_absolut=floor($time_hora);
$time_hora_decimal=$time_hora-$time_hora_absolut;
$time_minutos=($time_hora_decimal*3600)/60;
$time_minutos_absolut=floor($time_minutos);
$time_minutos_decimal=$time_minutos-$time_minutos_absolut;
$time_segundos=$time_minutos_decimal*60;
$time_segundos_absolut=round($time_segundos);

}else{
if($time_prom_resp>=86400)
{
$time_dias=$time_prom_resp/86400;
$time_dias_absolut=floor($time_dias);
$time_dias_decimal=$time_dias-$time_dias_absolut;
$time_hora=($time_dias_decimal*86400)/3600;
$time_hora_absolut=floor($time_hora);
$time_hora_decimal=$time_hora-$time_hora_absolut;
$time_minutos=($time_hora_decimal*3600)/60;
$time_minutos_absolut=floor($time_minutos);
$time_minutos_decimal=$time_minutos-$time_minutos_absolut;
$time_segundos=$time_minutos_decimal*60;
$time_segundos_absolut=round($time_segundos);

}
}
}
}


$tiempo_promedio_respuesta="$time_dias_absolut dias / $time_hora_absolut hrs / $time_minutos_absolut min / $time_segundos_absolut seg ";

Utilizando esta información no me arroja correctamente en el formato no se por que.

(fecha - fechaA)=$time_prom_resp
2008-01-14 16:53:59 - 2008-01-16 10:17:07 = 1936368.000000

Utilizando el código anterior me arroja 22 dias /9 hrs / 52 min / 48 seg cuando deberia arrojar 2 dias /..... alguien me puede orientar.

Gracias de antemano