Foros del Web » Programando para Internet » PHP »

Horario en jornada (Ayuda)

Estas en el tema de Horario en jornada (Ayuda) en el foro de PHP en Foros del Web. Holas,, me gustaria saber porque no se me cumple esta función, pues me sale siempre que es por la mañana sea la hora que sea: ...
  #1 (permalink)  
Antiguo 28/01/2005, 04:11
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 3 meses
Puntos: 0
Horario en jornada (Ayuda)

Holas,, me gustaria saber porque no se me cumple esta función, pues me sale siempre que es por la mañana sea la hora que sea:

Código PHP:
 $mihora substr($conc_band['hora'], 02); // La hora me sale en este formato xx:xx entonces yo extraigo los dos primeros numeros
    
$mihora str_replace(":","",$conc_band['hora']); // Elimino los dos puntos, para que solo quede el numero en caso de ser solo 1 cifra
    
 // A continuación compruebo que esté entre esos numeros
    
if(($mihora "6") && ($mihora <= "12")) $jornada "de la mañana";
    elseif((
$mihora "12") && ($mihora <= "19")) $jornada "de la tarde";
    elseif((
$mihora "19") && ($mihora <= "24")) $jornada "de la noche";
    elseif((
$mihora "24") && ($mihora <= "6")) $jornada "de la madrugada"
¿Que estoy haciendo mal?

MUCHAS GRACIAS DE ANTEMANO
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #2 (permalink)  
Antiguo 28/01/2005, 04:17
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 19 años, 4 meses
Puntos: 2
horario

Podria ser tema de las comillas. Has probado de quitarlas? asi tienes el formato numérico. A lo mejor ahora trabaja en caracteres y te da el valor alfanumerico. Puede ser??

Suerte

abe_k
  #3 (permalink)  
Antiguo 28/01/2005, 04:23
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 3 meses
Puntos: 0
Si le quito las comillas no me sale nada, o sea no hace caso, es como si lo ignorase todo ¿Extraño no?
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #4 (permalink)  
Antiguo 28/01/2005, 04:32
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 19 años, 4 meses
Puntos: 2
me equivoque

Entiendo que al hacer la funcion str_replace los caracteres numéricos passen a caracter, por lo que quitando las comas, no te saldra nada (me equivoque antes).

Y probar haciendo un cast de cada numero a entero??

pej: Integer($mihora) y luego hacer la condicion if () con los numeros sin comillas.

No se si en php puede hacerse este cast así. Informate


abe_k
  #5 (permalink)  
Antiguo 28/01/2005, 07:32
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 3 meses
Puntos: 0
No parece funcionar :( ¿Alguien sabe?
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #6 (permalink)  
Antiguo 28/01/2005, 07:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 94
Antigüedad: 19 años, 4 meses
Puntos: 0
Por que no casteas asi :

Código PHP:
$mihora = ((integer)str_replace(":","",$conc_band['hora'])); 
y luego procedes a hacer la comparacion

Saludos. Espero te ayude
  #7 (permalink)  
Antiguo 28/01/2005, 07:56
 
Fecha de Ingreso: diciembre-2004
Mensajes: 94
Antigüedad: 19 años, 4 meses
Puntos: 0
Otra cosa , el else if creo que se escribe asi, "else if " separado y porsiacaso abre y cierra llaves para todas las sentencias de if , al menos yo lo escribo asi y me funciona. Saludos.

Quedaria asi :

Código PHP:
 
    
if (($mihora 6) and ($mihora <= 12)) { $jornada "de la mañana" }; 
    else if((
$mihora 12) and ($mihora <= 19)) { $jornada "de la tarde"}; 
    else if((
$mihora 19) and  ($mihora <= 24)) {$jornada "de la noche"}; 
    else if((
$mihora 24) and  ($mihora <= 6)) {$jornada "de la madrugada"}; 
Espero te sirva

Última edición por Jose_Luis; 28/01/2005 a las 07:57
  #8 (permalink)  
Antiguo 31/01/2005, 07:38
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 3 meses
Puntos: 0
Gracias!! parece que funciona de esta forma:
Código PHP:
$mihora = ((integer)substr($conc_band['hora'], 02));
    if((
$mihora "6") && ($mihora <= "12")) $jornada "de la mañana";
    if((
$mihora "12") && ($mihora <= "19")) $jornada "de la tarde";
    if((
$mihora "19") && ($mihora <= "24")) $jornada "de la noche";
    if((
$mihora >= "1") && ($mihora <= "6")) $jornada "de la madrugada"
SALUDOS
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
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 00:16.