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
$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');
Saludos,
- Si estás trabajando directamente con fechas Unix, lo más conveniente es:
<?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
Cita de: EdePC en 15 Diciembre 2018, 05:51 AM
Saludos,
- Si estás trabajando directamente con fechas Unix, lo más conveniente es:
<?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.
$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
- 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):
<?php
$aux = "1545179382";
$actual = strtotime(date("Y-m-d h:i:s", $aux));
echo $actual;
?>
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 ;-) ;-) ;-) ;-)