No me dice la diferencia de horas entre una fecha y otra

Iniciado por SrTrp, 15 Diciembre 2018, 04:13 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Tengo 2 fechas unix pero quiero encontrar la diferencia entre horas de cada una pero no me da.
quiero obtener cuantas horas faltan para la fecha $ft pero me marca que faltan 0.
este es mi codigo
Código (php) [Seleccionar]

$ft=strtotime($aux);//la variable aux es un string con una fecha unix
             $ft= new DateTime($ft);
   
             $ac= new DateTime("now");
             $intervalo = $ac->diff($ft);
echo $intervalo->format(' %H horas');

EdePC

Saludos,

- Si estás trabajando directamente con fechas Unix, lo más conveniente es:

Código (php) [Seleccionar]
<?php

  $f1 
time() - 3600// Fecha/Hora actual Unix - 1 hora
  
$f2 time();        // Fecha/Hora actual Unix

  
$f1f date("Y-m-d h:i:s"$f1); // Formateando la Fecha/Hora
  
$f2f date("Y-m-d h:i:s"$f2); // a un formato entendible

  
echo "\$f1 = $f1 ($f1f) <br>"// Mostrando el formato Unix y
  
echo "\$f2 = $f2 ($f2f) <br>"// el formato entendible

  
$intervalo = ($f2 $f1) / 3600// Calcula la diferncia en horas

  
echo "Diferencia = $intervalo horas"// Muestra la diferencia

  // El formato Unix muestra la fecha/hora en segundos, por esto
  // se puede hacer calculos matematicos sencillos para obtener
  // dias (/86400 seg), horas (/3600 seg), minutos (/60 seg), etc.

?>


$f1 = 1544845397 (2018-12-15 03:43:17)
$f2 = 1544848997 (2018-12-15 04:43:17)
Diferencia = 1 horas

SrTrp

Cita de: EdePC en 15 Diciembre 2018, 05:51 AM
Saludos,

- Si estás trabajando directamente con fechas Unix, lo más conveniente es:

Código (php) [Seleccionar]
<?php

  $f1 
time() - 3600// Fecha/Hora actual Unix - 1 hora
  
$f2 time();        // Fecha/Hora actual Unix

  
$f1f date("Y-m-d h:i:s"$f1); // Formateando la Fecha/Hora
  
$f2f date("Y-m-d h:i:s"$f2); // a un formato entendible

  
echo "\$f1 = $f1 ($f1f) <br>"// Mostrando el formato Unix y
  
echo "\$f2 = $f2 ($f2f) <br>"// el formato entendible

  
$intervalo = ($f2 $f1) / 3600// Calcula la diferncia en horas

  
echo "Diferencia = $intervalo horas"// Muestra la diferencia

  // El formato Unix muestra la fecha/hora en segundos, por esto
  // se puede hacer calculos matematicos sencillos para obtener
  // dias (/86400 seg), horas (/3600 seg), minutos (/60 seg), etc.

?>


$f1 = 1544845397 (2018-12-15 03:43:17)
$f2 = 1544848997 (2018-12-15 04:43:17)
Diferencia = 1 horas

Gracias ya estoy en ello solo que tengo un detalle no me crea como fecha una variable que tengo con la fecha unix me la asigna vacia al momento de hacerle el strtotime() imprimo antes de hacerle el strtotime y si tiene valor.
Código (php) [Seleccionar]

$obtere1 = "SELECT * FROM users WHERE id='$idmajicd'";
            $obtere2 = $link->query($obtere1);
            $obtere3 = $obtere2->fetch_array();
           
              $aux = $obtere3['tiempo'];
              $actual =strtotime($aux);

           
            $f1 = strtotime($aux); // Fecha/Hora actual Unix - 1 hora
            $f2 = strtotime("now");        // Fecha/Hora actual Unix
           
            $f1f = date("Y-m-d h:i:s", $f1); // Formateando la Fecha/Hora
            $f2f = date("Y-m-d h:i:s", $f2); // a un formato entendible
            echo "\$f1 = $f1 ($f1f) <br>"; // Mostrando el formato Unix y
            echo "\$f2 = $f2 ($f2f) <br>"; // el formato entendible
           
            $intervalo = ($f1 - $f2) / 3600; // Calcula la diferncia en horas
           
            echo "Diferencia = $intervalo horas"; // Muestra la diferencia

EdePC

- strtotime convierte un String con formato de fecha a un Integer fecha UNIX, en tu caso tu fecha ya es tipo UNIX.

- Si quieres convertir una fecha UNIX a una fecha UNIX :xD utilizando strtotime, primero tienes que formatear tu fecha Unix de entrada a un formato  de fecha String, esto lo puedes hacer con date("formato", Fecha_UNIX):

Código (php) [Seleccionar]
<?php

  $aux 
"1545179382";
  
$actual strtotime(date("Y-m-d h:i:s"$aux));

  echo 
$actual;

?>

SrTrp

Ahh cierto XD pensaba que al momento que extraia la información de la BD pensaba que lo almacenaba como string X_X
Me has salvado la vida gracias  ;-)  ;-)  ;-)  ;-)