Foros del Web » Programando para Internet » PHP »

calcular horas de diferencia

Estas en el tema de calcular horas de diferencia en el foro de PHP en Foros del Web. Para un autenticador que estoy haciendo, quiero que me diga hace cuantas horas fue el ultimo acceso del usuario, para eso estoy utilizando el mktime() ...
  #1 (permalink)  
Antiguo 26/01/2012, 13:56
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
calcular horas de diferencia

Para un autenticador que estoy haciendo, quiero que me diga hace cuantas horas fue el ultimo acceso del usuario, para eso estoy utilizando el mktime() para convertir las fechas aritmeticas, pero no se que estoy haciendo mal, el caso es que el resultado me da cero.

el me esta trayendo la ultima fecha bien desde la bd, y la fecha y hora actual las trae bien tambien.

no se es porque me da cero.

aqui esta mi script

Código PHP:
Ver original
  1. <?php
  2. include ('connect.php');
  3.  
  4. //traemos la fecha del último acceso
  5.                
  6.                 $ua = "SELECT * FROM libro_users WHERE usuario = 'paoinsane'";
  7.                 $rua = mysql_query ($ua) or die (mysql_error);
  8.                
  9.                 while ($con = mysql_fetch_assoc($rua)) {
  10.                    
  11.                     $dua = $con['ultimo_acceso'];
  12.                    
  13.                 }
  14.                
  15.                 $fecha1 = mktime ($dua);
  16.                 //Calculamos la fecha del ingreso
  17.                 $fecha = date("Y-m-d H:i:s", time ()+7200);
  18.                 $fecha2 = mktime ($fecha);
  19.                
  20.                 $segundos = $fecha2 - $fecha1;
  21.                
  22.                 $horas = $segundos / (60 * 60);
  23.                
  24.                 echo $dua;
  25.                 echo "<p>$fecha</p>";
  26.                
  27.                 echo "<p>$fecha1</p>";
  28.                 echo "<p>$fecha2</p>";
  29. ?>
__________________
Say no more.......
  #2 (permalink)  
Antiguo 26/01/2012, 14:01
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: calcular horas de diferencia

creo que ya tengo la solucion, hacer un explode a las fechas y separarlas, voy a probar y comento
__________________
Say no more.......
  #3 (permalink)  
Antiguo 26/01/2012, 14:09
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: calcular horas de diferencia

algo asi..


Código PHP:
//obtener fecha actual para compararlo con el ultimo intento
                    
$fecha getdate();
                    
$today=($fecha["year"]."-".$fecha["mon"]."-".$fecha["mday"]." ".$fecha["hours"].":".$fecha["minutes"].":".$fecha["seconds"]);
                    
//genero una resta de la fecha actual contra el ultimo intento guardado en la BD        
                    
$datetime1 = new DateTime($today);
                    
$datetime2 = new DateTime($fila['ultimointento']);//esto sale de la consulta a la BD
                    
$intervalo $datetime1->diff($datetime2);

//luego lo comparamos.. por ejemplo, para saber si ya ha pasado 1 dia..

 
if($intervalo->format('%a')>1){
//lo que sea que tenga que hacer


tambien puedes buscarlo por sql...

Código PHP:
<?php
//sql de prueba para comparar fechas
$sql_date="select to_char(age (current_date, ultimointento),'YY/MM/DD')
FROM usuarios
WHERE idcliente= 2125373"
;

?>
en donde puede usar solo un parametro como DD o YY, o dos, depende de lo que quieras hacer.. espero te sirva
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 26/01/2012, 14:35
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: calcular horas de diferencia

efectivamente como lo pense era cuestion de explotar las fechas y separarlas para poder utilizar el mktime () aqui esta mi script como quedo funcional

Código PHP:
Ver original
  1. <?php
  2. include ('connect.php');
  3.  
  4. //traemos la fecha del último acceso
  5.                
  6.                 $ua = "SELECT * FROM libro_users WHERE usuario = 'paoinsane'";
  7.                 $rua = mysql_query ($ua) or die (mysql_error);
  8.                
  9.                 while ($con = mysql_fetch_assoc($rua)) {
  10.                    
  11.                     $dua = $con['ultimo_acceso'];
  12.                    
  13.                 }
  14.                
  15.                 //Explotamos la fecha y hora del ultimo acceso.
  16.                 $ultimo = explode(" ", $dua);
  17.                 $fecha_ultimo = $ultimo[0];
  18.                 $hora_ultimo = $ultimo[1];
  19.                
  20.                 //Explotamos la fecha
  21.                 $fecha1 = explode("-", $fecha_ultimo);
  22.                 $mes1 = $fecha1[1];
  23.                 $dia1 = $fecha1[2];
  24.                 $ano1 = $fecha1[0];
  25.                
  26.                 //Explotamos la hora
  27.                
  28.                 $hora1 = explode(":", $hora_ultimo);
  29.                 $hora = $hora1[0];
  30.                 $minuto = $hora1[1];
  31.                 $segundo = $hora1[2];
  32.                
  33.                
  34.                 $ultimo_acceso = mktime ($hora,$minuto,$segundo,$mes1,$dia1,$ano1);
  35.                 //Calculamos la fecha actual del ingreso
  36.                 $fecha = date("Y-m-d H:i:s", time ()+7200);
  37.                
  38.                 //Explotamos la fecha del acceso actual
  39.                
  40.                 $fecha_actual = explode(" ", $fecha);
  41.                
  42.                
  43.                 $fecha_ahora = $fecha_actual[0];
  44.                 $hora_ahora = $fecha_actual[1];
  45.                 //Explotamos la fecha de ahora
  46.                
  47.                 $fecha2 = explode("-", $fecha_ahora);
  48.                 $mes2 = $fecha2[1];
  49.                 $dia2 = $fecha2[2];
  50.                 $ano2 = $fecha2[0];
  51.                
  52.                 //Explotamos la hora de ahora
  53.                
  54.                 $hora2 = explode(":", $hora_ahora);
  55.                 $hora3 = $hora2[0];
  56.                 $minuto2 = $hora2[1];
  57.                 $segundo2 = $hora2[2];
  58.                
  59.                 $acceso_actual = mktime($hora3,$minuto2,$segundo2,$mes2,$dia2,$ano2);
  60.                
  61.                
  62.                 $segundos = $acceso_actual - $ultimo_acceso;
  63.                
  64.                 $horas = $segundos / (60 * 60);
  65.                 //redondeamos el resultado
  66.                 $redondo = round($horas,0);
  67.            
  68.                 echo "<p>Tu Ultimo acceso fue hace $redondo  horas</p>";
  69.                
  70. ?>
__________________
Say no more.......

Etiquetas: diferencia, horas, mysql, usuarios, calculadora
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 13:03.