Foros del Web » Programando para Internet » Javascript »

Modificar código con getHours()

Estas en el tema de Modificar código con getHours() en el foro de Javascript en Foros del Web. Que tal, estoy tratando de introducir en un sitio una imagen que vaya rotando según la hora y el día que yo determine. Hasta acá ...
  #1 (permalink)  
Antiguo 16/07/2010, 15:29
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Modificar código con getHours()

Que tal, estoy tratando de introducir en un sitio una imagen que vaya rotando según la hora y el día que yo determine. Hasta acá no tuve problemas, con la función de aquí debajo pude lograrlo (la encontré en este mismo foro). Pero el problema está en que esto solo me permite determinar horas exactas, no horas con minutos. Alguien puede ayudarme con lo que tenga que agregarle al código?

Estuve viendo, y encontré la función getMinutes que determina los minutos, pero no se como introducirla para determinar que las horas bases sean con X minutos.

Este es el código que uso:

Código:
<script language="JavaScript">
var hoy = new Date(),
dia = hoy.getDay(),
hora = hoy.getHours();

if (hora >= 8 && hora && dia > 1 && dia <= 5) {
document.write('<img src="/radiosuquia/imagenes/programacion1.jpg">');
}
else if (hora >= 12 && hora < 16 && dia > 1 && dia <= 5) {
document.write('<img src="/radiosuquia/imagenes/programacion2.jpg">');

</script>

Desde ya muchas gracias.
Saludos
  #2 (permalink)  
Antiguo 16/07/2010, 15:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 2 meses
Puntos: 126
Respuesta: Modificar código con getHours()

Hola

Prueba así
Cita:
hora = hoy.getMinutes()
(dia > 1 && dia <= 5 && hora >= 12 && hora < 16 && minutos >= 1 && minutos <= 30)
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 16/07/2010, 17:20
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Gracias por tu tiempo Adler.

Según entiendo, ese código afectaría por igual a ambas horas, no? la de "inicio" y la de "final". Hay alguna forma de poder determinar un horario tipo 20 a 22:30 con una sintaxis similar? Es decir, con diferentes minutos cada una.


De cualquier manera, ahora mismo pruebo el código.
Saludos
  #4 (permalink)  
Antiguo 16/07/2010, 17:35
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Modificar código con getHours()

Código Javascript:
Ver original
  1. hoy = new Date();
  2. dia = hoy.getDate();
  3. hora = hoy.getHours();
  4. minu = hoy.getMinutes();
  5. if (dia >= 1 && dia <= 5 && hora >= 20 && (hora <= 22 && minu >= 1 && minu <= 30)){
  6.  alert('si');
  7. }else{
  8.  alert('no');
  9. }

Saludos (:
  #5 (permalink)  
Antiguo 16/07/2010, 17:43
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Cronos, disculpa mi ignorancia, pero no entiendo la última parte de tu código. Lo de "alert si" y "alert no"...

No termino de comprender como debería agregar los demás "else if" de las otras imágenes...


Edito:

Agregué "sub-paréntesis" para determinar los minutos de cada hora, tal como ví en el ejemplo tuyo Cronos, pero no me funciona. Está muy errado este código?

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. var hoy = new Date(),
  3.     dia = hoy.getDay(),
  4.     hora = hoy.getHours(),
  5.     minutos = hoy.getMinutes();
  6.  
  7.  
  8. if (dia > 1 && dia <= 5 && hora >= 12 && (hora < 16 && minutos >= 0 && minutos <= 29)) {
  9.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion1.jpg">');
  10. }
  11.  
  12. else if (dia > 1 && dia <= 5 && (hora >= 16 && minutos >= 30 && minutos <= 59) && (hora < 20 && minutos >= 0 && minutos <= 29)) {
  13.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion2.jpg">');
  14. }
  15.  
  16. else if (dia > 1 && dia <= 5 && (hora >= 20 && minutos >= 30 && minutos <= 59) && (hora < 22 && minutos >= 0 && minutos <= 29)) {
  17.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion3.jpg">');
  18. }
  19.  
  20. </script>

Última edición por Javier.C; 17/07/2010 a las 12:14
  #6 (permalink)  
Antiguo 17/07/2010, 12:14
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Ninguna ayuda gente?!
  #7 (permalink)  
Antiguo 18/07/2010, 04:21
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Modificar código con getHours()

Vamos a poner un ejemplo. Supongamos que hoy es martes y son las 16:15.
El Martes es 2, 2>1, por tanto podría ser cualquiera de los 3.
La hora es 16 por lo que sólo podría ser el 2º.
Los minutos son 15. En el 2º se pide que la hora sea mayor o igual a 16 (eso lo tenemos) y que los minutos sean mayores que 30 y menores o iguales a 59, y además se pide que la hora sea menor de 20 (16<20) y que los minutos sean mayores o iguales a 0 y menores que 30. Teniendo todo esto, el if devuelve false, pues los minutos son mayores que 0 y menores que 30, pero no mayores que 29 (>=30 = >29) ni menores de 60 (<=59 = <60). Entonces el error están en los minutos.
Saludos (:
  #8 (permalink)  
Antiguo 18/07/2010, 12:36
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Cita:
Iniciado por _cronos2 Ver Mensaje
Vamos a poner un ejemplo. Supongamos que hoy es martes y son las 16:15.
El Martes es 2, 2>1, por tanto podría ser cualquiera de los 3.
La hora es 16 por lo que sólo podría ser el 2º.
Los minutos son 15. En el 2º se pide que la hora sea mayor o igual a 16 (eso lo tenemos) y que los minutos sean mayores que 30 y menores o iguales a 59, y además se pide que la hora sea menor de 20 (16<20) y que los minutos sean mayores o iguales a 0 y menores que 30. Teniendo todo esto, el if devuelve false, pues los minutos son mayores que 0 y menores que 30, pero no mayores que 29 (>=30 = >29) ni menores de 60 (<=59 = <60). Entonces el error están en los minutos.
Saludos (:
Gracias por responder Cronos.

Entonces veo que sigo en problemas. ¿Hay alguna forma de acomodar la sintaxis para que tome un período de tiempo con horas no exactas?.
  #9 (permalink)  
Antiguo 19/07/2010, 17:42
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Por lo menos podrá decirme alguien bajo que tópicos buscar documentación al respecto? Probé buscando todo lo referente a manejo del tiempo en java, pero en ninguna parte encontré la respuesta a mi problema. Se me ocurrió también como "lapsos de tiempo" en java, pero la mayoría de los casos hacen referencia a tiempo de X horas, X segundos, etc., que a un rango determinado por dos horas.

Alguna recomendación?

Saludos
  #10 (permalink)  
Antiguo 20/07/2010, 05:23
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 9 meses
Puntos: 310
Respuesta: Modificar código con getHours()

Creo que algo así funcionaría:
Código Javascript:
Ver original
  1. hoy = new Date();
  2. dia = hoy.getDay();
  3. hora =  hoy.getHours;
  4. minu = hoy.getMinutes();
  5. if(dia > 1 && dia < 6 && ((hora==16 && minu >= 30) || hora > 16) && ((hora == 20 && minu <= 30) || hora < 20){
  6.  alert ('si');
  7. }else{
  8.  alert ('no');
  9. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #11 (permalink)  
Antiguo 20/07/2010, 14:07
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Nop, no me funciona. Pero se me ocurre que la clave puede estar por el lado de "||", no?
  #12 (permalink)  
Antiguo 21/07/2010, 01:32
 
Fecha de Ingreso: enero-2002
Mensajes: 65
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Modificar código con getHours()

Probando diferentes variaciones de las opciones que me recomendaron, llegué a este código que parece funcionarme. No obstante, no lo probé lo suficiente como para afirmar que funciona en todos los casos, por lo que me gustaría que me dijieran si está correctamente escrito:

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. var hoy = new Date(),
  3.     dia = hoy.getDay(),
  4.     hora = hoy.getHours(),
  5.     minu = hoy.getMinutes();
  6.  
  7. if ((hora > 3 && minu >= 30) || (hora <= 4 && minu <= 12) && dia >= 1 && dia <= 5) {
  8.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion3.jpg">');
  9. }  
  10. else if ((hora > 4 && minu > 12) || (hora <= 4 && minu <= 20) && dia >= 1 && dia <= 5) {
  11.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion4.jpg">');
  12. }  
  13. else if ((hora > 4 && minu > 20) || (hora <= 5 && minu <= 30) && dia >= 1 && dia <= 5) {
  14.     document.write('<img src="/wp-content/themes/radiosuquia/images/programacion5.jpg">');
  15. }  
  16. </script>

Este código busca que de las 3:30 a las 4:12 haya una imagen, que de las 4:13 a las 4:20 haya otra y que de las 4:21 a las 5:30 se muestre otra.

Com dije arriba, parece andarme, pero no me termina de cuadrar que sea del todo razonable.

Una duda base que tengo es si ">4" arrancaría en 5,6,7 o en algo tipo 04:00:01.

Saludos

Etiquetas: gethours(), imagenes, minutos, rotacion
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 06:32.