Foros del Web » Programando para Internet » PHP »

Restar fechas

Estas en el tema de Restar fechas en el foro de PHP en Foros del Web. Hola tengo un problema deseo restar 2 fechas una almacenada en la base de datos y la actual que se obtiene del servidor, ambas estan ...
  #1 (permalink)  
Antiguo 15/06/2010, 10:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 94
Antigüedad: 15 años, 8 meses
Puntos: 0
Restar fechas

Hola tengo un problema deseo restar 2 fechas una almacenada en la base de datos y la actual que se obtiene del servidor, ambas estan datetime, y el resultado de ser por ejemplo 1 dia 1 hora 30min 3seg, pero en algunas fechas no me realiza bien el calculo y en otras si funciona, y son varios registros que se muestran al mismo tiempo con una fecha inicio, fecha actual y duracion.. gracias

Código PHP:
$fecha=date("Y-m-d H:i:s");
$hora=date("H:i:s");
$actual=$fecha;

list(
$horas$minutos$segundos) = explode(":"$hora);

$cons "SELECT * FROM tconfigurador where cSolicitud = '$solicitud'";
$result mysql_query($cons$conexion); 
while(
$row mysql_fetch_array($result)) {
$empezo=$row['cInicio_Actividad'];

$consulta "SELECT DATE_FORMAT(cInicio_Actividad,'%H:%i:%s') as fecha_solo, HOUR(cInicio_Actividad) as hora_solo FROM tconfigurador where '$solicitud' = cSolicitud";
$resulta mysql_query($consulta$conexion)or die (mysql_error()); 
$horainicio=mysql_result($resulta,"hora_solo"); 
list(
$horasin$minutosin$segundosin) = explode(":"$horainicio);
}

$tiempo_transcurrido=(strtotime($actual)-strtotime($empezo));
$dias= (int)($tiempo_transcurrido/(60*60*24));
$dias1=$dias$num_filas1;
//echo"Dias Habiles: $dias1";

$ini=((($horasin*60)*60)+($minutosin*60)+$segundosin);

$fin=((($horas*60)*60)+($minutos*60)+$segundos);

    
$dif=$fin-$ini;

    
$difh=floor($dif/3600);
    
    if (
$difh 0) { 
    
$difh1$difh 24;
    
$hora $difh1;
        }
    else {
    
$hora $difh;
         }  
    
//echo "Horas: $hora";
    
$difm=floor(($dif-($difh*3600))/60);
    
//echo "Minutos: $difm";
    
$difs=$dif-($difm*60)-($difh*3600);
    
//echo "Segundos: $difs"; 

Etiquetas: fechas, restar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:24.