Foros del Web » Programando para Internet » PHP »

como comparar horas con php?

Estas en el tema de como comparar horas con php? en el foro de PHP en Foros del Web. holaa... soy nuevo en esto de php. tengo un problema yo quiero comparar la hora que saco del servidor asi $hora=date("h:ia"); con una hora especifica ...
  #1 (permalink)  
Antiguo 22/05/2008, 13:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 15 años, 11 meses
Puntos: 0
como comparar horas con php?

holaa... soy nuevo en esto de php. tengo un problema yo quiero comparar la hora que saco del servidor asi $hora=date("h:ia"); con una hora especifica para poder asignarle un valor a la variable 'turno' hice algo asi pero como no se mucho de esto:


if($hora >= '11:01pm'&& $hora<='7:00am'){
$turno = 'T1' ;
}
elseif($hora >='3:01am' && $hora<='8:00pm'){
$turno = 'T2';
}
else {
$turno = 'T3';
}
si me pueden ayudar se lo agradeceria mucho....
  #2 (permalink)  
Antiguo 22/05/2008, 13:43
Avatar de Scorpion05  
Fecha de Ingreso: noviembre-2006
Mensajes: 31
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: como comparar horas con php? ayudenme por favor

de esta manera pudieras hacerlos

if(strtotime("21:00") > strtotime("4:00"))

espero te sirva.Saludos
  #3 (permalink)  
Antiguo 22/05/2008, 18:52
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: como comparar horas con php?

Como apunta Scorpion05, la comparación de horas no se puede hacer en base a cadenas, como tú has hecho, sino ayudado con funciones tales como strtotime(), que obtienen un entero con el Tiemstamp correspondiente a la fecha/hora pasada como argumento. Aunque es posible que esto no te funcione, ya que el timestamp marca fecha y hora, y según veo, solo necesitas la hora.

En este caso lo único que se me ocurre es pasar a entero la hora y compararla. De tal modo que las 12:32:45 se convierten en 123245 y se pueden comparar con las 15:45:12, que, transformado en 154512 resulta mayor:

Código PHP:
$hora=str_replace(":","",$horaBD); //MySQL devuelve la hora en formato H:i:s, debemos quitarle los dos puntos;
if (intval($hora)<intval(date("His")) $turno="T1"
Por cierto, te recomiendo que, para hacer más limpio tu código, utilices una estructura Switch Case que maneje también casos default (es decir, si no se da ninguna de las condiciones especificadas anteriormente). Y que almacenes $turno como entero (1, 2, 3...) en vez de cadena ("T1","T2","T3"...).

Espero que te sirva de ayuda. Un abrazo,
Isra
  #4 (permalink)  
Antiguo 16/11/2008, 16:52
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: como comparar horas con php?

Gracias a Scorpion...

He podido resolver otro tema relacionado con la comparativa de horas, ya que tengo el siguiente codigo que muestra el programa que se esta emitiendo y este no terminaba de indicarlo muy fino... he cambiado el codigo antiguo que podreis observarlo despues de dos // por el nuevo que esta justo abajo y parece que entonces si que funciona

Código:
  $SQL_query = mysql_query('SELECT * FROM programas');
  while($news = mysql_fetch_assoc($SQL_query))
  {
$ff = $news['dia'];
if($f==$ff) {
$f1 = $news['hinicio'];
$f11=str_replace(":","",$f1);
$f3 = $news['hfinal'] ;
$f33=str_replace(":","",$f3);
//if((date("H:i", time()) >= $f1) && (date("H:i", time()) >= $f3 ))
if((date("Hi", time()) >= $f11) && (date("Hi", time()) <= $f33 ))
{ 
$programnow = $news['nombre'];
} 
 }
 }

Espero que os sirva a alguno igual que a mi.

Saludos
  #5 (permalink)  
Antiguo 18/11/2008, 07:24
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: como comparar horas con php?

hola y si en vez de horas fueran fechas como hago?
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 21:22.