Foros del Web » Programando para Internet » Javascript »

Ejecutar un script a una hora determinada

Estas en el tema de Ejecutar un script a una hora determinada en el foro de Javascript en Foros del Web. Lo que quiero basicamente es ejecutar un script que abra un pop up automaticamente, exactamente a las 7:00 p.m. Gracias!...
  #1 (permalink)  
Antiguo 11/07/2004, 14:50
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
Ejecutar un script a una hora determinada

Lo que quiero basicamente es ejecutar un script que abra un pop up automaticamente, exactamente a las 7:00 p.m.
Gracias!
  #2 (permalink)  
Antiguo 11/07/2004, 20:48
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
Podrias hacer una comparación despues del script...
No manejo muy bien las horas con Javascript, te daría la solución en vbs pero este no es el foro, te pongo entonces el pseudocodigo..
<script>

if(obtenerlahora=7:00)
//código


</script>
  #3 (permalink)  
Antiguo 12/07/2004, 04:45
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Pon lo siguiente:

<html>
<head>
<script>

mensaje="Ya son las 7!!"
hoy=new Date();
hora=hoy.getHours();
minutos=hoy.getMinutes();
function comprobar(){
if(hora==19 && minutos==0){
alert(mensaje);
}
setTimeout("comprobar()",60000);}
</script>
</head>


<body onload="comprobar()">
<div id="pepe"></div>


</body>
</html>

Espero que te sirva!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 12/07/2004 a las 05:40 Razón: Siete de la tarrrde, no de la mañaaaanaaa...
  #4 (permalink)  
Antiguo 12/07/2004, 05:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Yo creo que habría que calcular el nº de milisegundos que faltan hasta las 7 y entonces abrir la página:

Código:
<html>
	<head>
		<script>
			function calcular()	{
				ahora = new Date();
				luego = new Date();
				luego.setHours(19);
				luego.setMinutes(0);
				luego.setSeconds(0);
				return luego.getTime() - ahora.getTime();
			}

			function abrir()	{
				window.open("", "", "");
			}
		</script>
	</head>
	<body onload="setTimeout('abrir()', calcular())">
	</body>
</html>
Faltarían algunas comprobaciones...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 12/07/2004, 05:43
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
mmm... me gusta más tu sistema caricatos. Es más limpio... Y consume menos recursos del PC del cliente.

También me hace darme cuenta de que tengo que leer más atentamente las preguntas...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 12/07/2004, 06:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

La verdad es que no sé si funciona bien... Habrá que esperar hasta las 19 horas, y yo no creo que lo pueda comprobar...
Ya nos dirá Isaac Mañe si alguna respuesta le va bien...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 12/07/2004, 06:21
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hombre... por modificar la hora del reloj del ordenador tampoco pasa nada...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 12/07/2004, 06:23
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Lo he probado y funciona a la perfección
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 12/07/2004, 07:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por KarlanKas
Lo he probado y funciona a la perfección
Gracias por comprobarlo, y ratificar que está bien, pero hay que matizar que si la página se abre después de las 19 el popup saltaría ya que calcular() devolvería un valor negativo...

Las pruebas que hice, fueron cambiando los minutos y segundos, pero con la misma hora, así que salía el popup inmediatamente...

El arreglo que tendría que hacer Isaac Mañe es comprobar que la hora sea menor que 19... de lo contrariio calcular los milisegundos hasta la hora 24 y luego sumarle los que sumarían hasta las 19: (19 * 60 * 60 * 1000)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 12/07/2004, 07:38
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias!

O.K Ayer no había gente por aca; asi es que hoy voy a probar los códigos sugeridos. Agradezco mucho el interés en el tema. El objetivo es que se abra un popup entre 7 y 8 de la noche porque a esa hora estaremos haciendo una conexión EN VIVO a través del Real. Ya veré que sale. Probaré con una hora diferente para no esperar a ver si funciona hasta las 7. Una vez mas gracias mil! Ya les digo que ocurre...
  #11 (permalink)  
Antiguo 12/07/2004, 07:57
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
Funciona A La PerfecciÓn!!!!

O.K FUNCIONA!!!! Ahora necesito saber como puedo hacer para que esa ventana cierre a las 8:00 p.m. o que las personas que entren al site despues de las 8 p.m no les cargue la famosa ventana.
  #12 (permalink)  
Antiguo 12/07/2004, 14:51
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Modifica la función abrir así:
<html>
<head>
<title>Untitled</title>
<script>
function abrir(){
ventanota=window.open("", "", "");
setTimeout("if(ventanota && !ventanota.closed){ventanota.close()}",3600000);
}
ahora = new Date();
luego = new Date();
luego.setHours(19);
luego.setMinutes(0);
luego.setSeconds(0);
espera=luego.getTime() - ahora.getTime();



</script>

</head>

<body onload="if(espera>=0){setTimeout('abrir()', espera)}">



</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 12/07/2004 a las 15:00
  #13 (permalink)  
Antiguo 14/07/2004, 09:45
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 3 meses
Puntos: 0
Que bien!!!

Solo un par de preguntas mas.
1.- Los 3600000 son milisegundos?
2.- Que hora toma el script para ejecutar la acción?
La del computador o la del servidor.
GRACIAS MIL
  #14 (permalink)  
Antiguo 14/07/2004, 11:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Lo de la cifra se lo dejo a KarlanKas, aunque el parámetro de setTimeout son milisegundos... supongo que se tratará de multiplicar los 1000 milisegundos de un segundo por los 60 segundos de un minuto por los 60 minutos de un a hora...
Aunque si debe "apagarse" a las 20:00 "en punto" yo generaría esa hora y le aplicaría el sistema de apertura pero como cierre... (no se si se me entiende...)... Las horas que genera javascript de esta manera son las del ordenador del cliente, pero hay una variante que devuelve la hora GMT o UDC (no sé si las siglas son correctas)... sería cuestión de investigar un poco...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 11:26.