Foros del Web » Programando para Internet » Javascript »

minutos

Estas en el tema de minutos en el foro de Javascript en Foros del Web. Alguien sabe por qué un escript no me toma los minutos para realizar el cambio de una imagen en la pantalla? Otro problema que tengo ...
  #1 (permalink)  
Antiguo 22/10/2007, 11:46
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
minutos

Alguien sabe por qué un escript no me toma los minutos para realizar el cambio de una imagen en la pantalla? Otro problema que tengo es que no respeta la transición entre una condición y otra, esto es, si una imagen está en pantalla desde la 1:00 hasta las 6:00 y el usuario justo entra a las 5:59 se topará con la imagen correcta pero se dan las 6:00, 6:30 y la imagen nunca cambió, sigue la misma. Estoy desesperada, alguien tiene alguna respuesta?
El script es el siguiente:
<table width="131" border="0" align="center">
<tr>
<td><div align="center">
<font color="#000000" size="4"><strong><font face="Arial">En
el Aire</font></strong> <font color="#CCCCCC" size="3">
<script language=JavaScript>
<!--
Now = new Date();
Hour = Now.getHours();
Minuto = Now.getMinutes();
if ((Hour < 7)&& (Minuto < 30))
document.write("<img src='9M.jpg'>")
else if (Hour < 9)
document.write("<img src='1M.jpg'>")
else if (Hour < 13)
document.write("<img src='2M.jpg'>")
else if (Hour < 14)
document.write("<img src='3M.jpg'>")
else if (Hour < 15)
document.write("<img src='4M.jpg'>")
else if (Hour < 16)
document.write("<img src='5M.jpg'>")
else if (Hour < 19)
document.write("<img src='6M.jpg'>")
else if ((Hour < 20)&& (Minuto < 30))
document.write("<img src='6M.jpg'>")
else if ((Hour > 20)&& (Minuto > 30))
document.write("<img src='7M.jpg'>")
else if (Hour < 21)
document.write("<img src='7M.jpg'>")
else if (Hour < 24)
document.write("<img src='8M.jpg'>")

//-->
</script>
</font>
</font> </font> </div></td>
</tr>
</table>
Gracias de nuevo.
  #2 (permalink)  
Antiguo 23/10/2007, 06:14
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Re: minutos

Hay un problema en tus comparaciones. Si quieres poner que aparezca una imagen antes de las 7.30 deberías ponerlo así:

If( (Hour==7 && Minutos<30) || Hour<7){
document.write("<img src='9M.jpg'>")
}

Aquí te pasaría lo mismo:

else if ((Hour < 20)&& (Minuto < 30))
document.write("<img src='6M.jpg'>")
else if ((Hour > 20)&& (Minuto > 30))

No sé lo que querías que fuera porque está confuso. Pero si lo dices te ayudamos.

En resumidas cuentas, no es que no tome bien los minutos, es que está mal planteada la comparación.

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 23/10/2007, 22:56
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: minutos

Muchisimas gracias por la respuesta, el tema de los minutos quedó solucionado. El único problema que persiste es el de el cambio automático de imágenes.
Pareciera como si el script se ejecutara una sola vez. Esto es, si un usuario entra justo cuando una condición vence e inicia la otra, la imagen que corresponde no aparece y el usuario sigue viendo la misma imagen que cuando entró a la página, eso continua sin importar la cantidad de tiempo que el usuario esté en la página. Disculpame el enredo que hago en las explicaciones, como verás estoy en un nivel más abajo de los novatos.
De nueva cuenta, gracias.
  #4 (permalink)  
Antiguo 24/10/2007, 00:51
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Re: minutos

[font=courier new]Si quieres que cambie automáticamente haz lo siguiente:

Mete todo el código que elige la imagen dentro de una function modificado así:

en vez de:

Código:
document.write("<img src='9M.jpg'>")
pon

Código:
imagen="9M.jpg";
al final de la function pones:

Código:
document.images['enElAire'].src=imagen;
y donde quieras que salga la imagen pon:

<img name="enElAire" src="imagenpordefecto.jpg" />
por ejemplo:

Código:
<html>
<head>
	<title>Untitled</title>
	<script>

function eligeImagen(){

Now = new Date();

Hour = Now.getHours();
Minuto = Now.getMinutes();
hora=Hour+""+Minuto
hora=parseInt(hora);

if (hora<730){
imagen="9M.jpg";
}
else if (hora<900){
imagen="1M.jpg";
}
else if (hora<1300){
imagen="2M.jpg";
}
else if (hora<1400){
imagen="4M.jpg";
}
else if (hora<1500){
imagen="4M.jpg";
}
else if (hora<1600){
imagen="5M.jpg";
}
else if (hora<1900){
imagen="6M.jpg";
}
else if (hora<2030){
imagen="6M.jpg";
}
else if (hora<2100){
imagen="7M.jpg";
}
else if (hora<2359){
imagen="8M.jpg";
}

document.images['enElAire'].src=imagen;

}


</script>

	

</head>

<body onload="setInterval('eligeImagen()',60000)">

<img name="enElAire" src="imagenpordefecto.jpg" />
<script>
eligeImagen();
</script>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 24/10/2007, 03:16
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: minutos

GRACIAS, miles de gracias. No puedo explicarte la felicidad que tengo. FUNCIONA!!!! lo probé en una hoja en blanco y anda correctamente, tiene un poco de retardo en el cambio de imagen pero son tan solo 56 segundos, nada comparado con todo lo que me ayudaste.
Te cuento que traté de agregarlo a la página que corresponde pero no se ejecuta el cambio de imagen. No me hago ningún problema porque está comprobado que funciona y que el problema es mio ya que debo estar agregando mal el código.
GRACIAS, GRACIAS, GRACIAS
  #6 (permalink)  
Antiguo 24/10/2007, 03:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Re: minutos

De nada! que derroche de agradecimientos!

Respecto al retardo la culpa es mía porque he puesto que lo compruebe cada minuto. Puedes hacer que lo compruebe cada menos tiempo cambiando el número en negrita:

<body onload="setInterval('eligeImagen()',60000)">

El número representan a milisegundos. Si quieres que lo compruebe cada segundo deberías poner un 1000 en vez del 60000 que tiene ahora.

Respecto a que no funcione, es extraño. Si me dices dónde puedo verlo lo reviso y te digo qué es lo que falla.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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 18:43.