Foros del Web » Programando para Internet » PHP »

Comparar horas

Estas en el tema de Comparar horas en el foro de PHP en Foros del Web. Lo que busco es lo siguiente, tengo una fecha seguida de la hora guardada en una base de datos como cadena, lo que necesito hacer ...
  #1 (permalink)  
Antiguo 30/06/2009, 08:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Comparar horas

Lo que busco es lo siguiente, tengo una fecha seguida de la hora guardada en una base de datos como cadena, lo que necesito hacer es comparar esa informacion con la que tome en el momento de ejecutar el script, de mas esta decir que ambas fechas/horas tienen la misma sintaxis.

Ahora bien, se como compararlas con el metodo timestamp:

Código PHP:
if (strtotime($row["inicio"]) > strtotime($actual)) 
Pero la comparacion que necesito hacer, es que en la fecha/horario actual haya pasado minimo 1 hora para que el script se ejecute.

Espero que se entienda, gracias y saludos.
  #2 (permalink)  
Antiguo 30/06/2009, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Comparar horas

Lo que puedes hacer es algo así:
Código php:
Ver original
  1. $mas_una_hora = strotime("+1 hour", strotime($row['inicio']));

Aunque sería mejor que guardaras ese timestamp al crear tu registro y lo comparas pero eso lo dejo a tu implementación.

Saludos.
  #3 (permalink)  
Antiguo 30/06/2009, 11:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Comparar horas

Hice lo siguiente y funciona de maravilla, le resto al horario actual el horario guardado, transformando las variables con strtotime para utilizarlas como timestamp, y a su vez el valor es pasado por la funcion abs(), esto me da la cantidad de segundos entre uno y otro, de manera que en un if pregunto si ya pasaron 3600 segundos (que es lo equivalente a 1 hora), y si es asi lo dejo pasar.

Gracias de todas formas, por si a alguien le sirve aca esta:

Aclaro que la variable guardada en la base de datos esta en formato datetime

Código PHP:
$actual=date('y-n-j G:i:s');
$anterior=mysql_db_query($db,"select * from emails");
while(
$row=mysql_fetch_array($anterior))
{
$ultimo=$row["anterior"];
$diferencia=abs(strtotime($actual) - strtotime($ultimo));
}
mysql_free_result($anterior);

if (
$diferencia>3600)
{
echo 
'Ya paso 1 hora.';

  #4 (permalink)  
Antiguo 30/06/2009, 19:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Comparar horas

Te puedes ahorrar y optimizar un paso al usar time() directamente en lugar de sacar la fecha actual y pasarla por strtotime.

Saludos.
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:52.