JavaScript - Pausar javascrip durante un unas horas al dia...

   
Vista:

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 24/09/2014 21:21:02
Hola
Tengo una funcion en javascrip que utillzamos para leer el titulo de una cancion en un xml.
Me gustaria que este javascrip a las horas que yo le diga quedara parado... o mostrara el texto que yo quiera. No el que el lee del XML.

La idea seria poner dia y hora para que el no haga nada... por ejemplo (lunes 8.00 a 9.00) que este inactivo.

Para estos horarios podria editar el mismo JS. No se si alguna alma caritativa puede ayudarme.
Mis conocimientos de programación son casi nulos...

Y es un trabajo que me han encargado para ayudar a una pequeña emissora.

Si alguien puede ayudarme... se lo agradecere.

Adjunto el archivo.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 25/09/2014 08:52:11
Hola Lee, es posible hacerlo, pero no es nada seguro...
Si el usuario cambia la hora de su ordenador, dejara de funcionar, o si esta en otra franja horaria dejara de funcionar.

Aquí te pongo como podría ser, aunque no lo he probado, pero creo que te funcionaria.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function readSongFirst(){
	var fecha=new Date();
	if(fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getHours()<=9)
	{
		alert("No se puede mostrar")
	}else{
		$.get("../../../xml/XMLSongs.xml", function (xml) {
			$(xml).find("Song").each(function () {
 
				var title = $(this).attr('title');
				if (title=='' || title=='undefined'){
					title = 'Sense titol'
				}
				//Buscamos el Nodo Artist i dentro el atributo name
				$(xml).find("Artist").each(function () {
					name = $(this).attr('name');
					if (name=='' || name=='undefined'){
						name = 'Audio'
					}
				});
				//alert(name + " - " + title );
				$("#historial_song").text(name + " - " + title);
			});
		});
	}
}

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 25/09/2014 16:54:49
Hola xve.
Primero agradecerte la respuesta y el esfuerzo.

He estado probando y en la hora que le pongo me da el mensaje en la pantalla. Me gustaría que:
O no mostrara el texto que lee el scrip que hay debajo.
O que en su lugar mostrara lo que yo le escribo. Està mejor, sino la primera.

I por ultimo he visto que solo hace caso del dia de la primera linea. (eso si lo he puesto todo bien)

var fecha=new Date();
if(fecha.getDay()==2 && fecha.getHours()>=15 && fecha.getHours()<=16)
if(fecha.getDay()==4 && fecha.getHours()>=16,15 && fecha.getHours()<=17,50)


En este ejemplo hoy jueves a las 4.30 no me da ningun mensaje... y si pongo el 4 (de jueves) en la primera linea si que me da el mensaje.

No sé si puede influir, pero el que muestra esto es un index que actualiza cada X minutos o segundos...

Ya dirás si lo hago bien...

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 25/09/2014 18:26:55
Hola Lee, no entiendo como lo tienes puesto... que tienes un if() debajo del otro?

Si lo tienes tal y como lo muestras te tiene que dar error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 25/09/2014 18:29:48
Hola,
no me da error....
la intencion era ponerle mas de un horario...
he provado asi y he visto que no hacia caso del dia de abajo... del horario si.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 25/09/2014 20:33:50
Si quieres poner mas horarios, juntalos todos en un mismo if()... algo así:
1
2
3
4
if(
(fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getHours()<=9) ||
(fecha.getDay()==2 && fecha.getHours()>=12 && fecha.getHours()<=14)
)

Coméntanos si te funciona, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 25/09/2014 20:42:43
Funciona!!!

lo único que no se si es posible es que en vez de dar el mensaje en pantalla, dejara la parte que lee el fichero XML inutilizada... o sea que no pueda leer nada.
o que en su lugar donde dice canción y autor... pueda escribir lo que quiera.

Mil gracias de nuevo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 26/09/2014 07:42:06
Si claro, puedes poner lo que quieras...

1
$("#historial_song").text("No disponible!!);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 26/09/2014 07:47:50
Perdona mi ignorancia, pero donde debo ponerlo...
al lado de cada hora?
la intención es que muestre mi mensaje a leas horas que le digo.
sino el tiene que leer el XML como hace ahora.

no se si me entiendes...

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 26/09/2014 11:04:25
Lo que yo te he puesto, lo tienes que reemplazarlo por el alert()... si es que quieres que muestre el mensaje en el id hostoria_song...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 26/09/2014 13:08:23
siempre me da error al ponerlo...
he probado de diferentes formas y nada...

que debería de quitar...

{
alert("No se puede mostrar")
}else
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 28/09/2014 10:06:39
Hola de nuevo,
he estado probando de todas formas y no me funciona si pongo este código en el sitio del Alert...

Cuando puedas me dices si hago algo mal... o me pasas una demo...

quizás lo más fácil seria desactivar la parte de abajo en el horario que le marcamos... sin alertas ni mensajes. O sea que no lea el XML.

ya me dirás las opciones que le ves.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 28/09/2014 18:36:10
Hola lee, no se como lo estas haciendo, pero si por ejemplo, simplemente quitas el alert() o lo comentas, ya no te mostrar nada y no leera el xml, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 28/09/2014 18:45:01
Hola,
con esto asi, me muestra el mensaje pero sigue leyendo el XML.

(fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getHours()<=9) ||
(fecha.getDay()==7 && fecha.getHours()>=18,30 && fecha.getHours()<=21,30))
{
alert("No se puede mostrar")
}else

{
$.get("../../../xml/XMLSongs.xml", function (xml) {
$(xml).find("Song").each(function () {.......

Y si sustituyo no se puede mostrar por el codigo da error el dreamweaver.

seguro que estoy haciendo algo mal...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 28/09/2014 20:03:44
Lee, revisa el código de la primera respuesta que te di... lo tienes mal puesto!!!! de esta manera, siempre se ejecutara!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 28/09/2014 20:15:33
He revisado i no veo nada...
lo unico és que le ponemos mas de una fecha separado con ||...
te copio el codigo otra vez, no veo ninguna diferencia.

Lo siento...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function readSongFirst(){
	var fecha=new Date();
	if((fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getHours()<=9) ||
(fecha.getDay()==7 && fecha.getHours()>=18,30 && fecha.getHours()<=21,30))
	{
		alert("No se puede mostrar")
	}else{
		$.get("../../../xml/XMLSongs.xml", function (xml) {
			$(xml).find("Song").each(function () {
 
			   var title = $(this).attr('title');
			   if (title=='' || title=='undefined'){
				   title = 'Sense titol'
			   }
			   //Buscamos el Nodo Artist i dentro el atributo name
			   $(xml).find("Artist").each(function () {
					name = $(this).attr('name');
					if (name=='' || name=='undefined'){
				 	  name = 'Audio'
			   		}
			   });
			   //alert(name + " - " + title );
			   $("#historial_song").text(name + " - " + title);
			});
		});
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 28/09/2014 20:47:39
Creo que lo que passa és que el codigo actualiza cada 3000 no sé si son milisegundos o que son...
En el momento que sale el mensaje no muestra el nombre... pero al momento como que actualiza lo vuelve a mostrar...

lo que se deberia intentar es que no actualize durante las horas que le ponemos.... o algo asi...

Te mando todo el codigo i veras el 3000 que te digo... creo que es el culpable.

GRACIAS por tu paciencia...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function readSong()
{
	setInterval(function(){
		//$.get("XXXXXXXt/xml/XMLSongs.xml", function (xml) {
		$.get("../../../xml/XMLSongs.xml", function (xml) {
			$(xml).find("Song").each(function () {
			   var title = $(this).attr('title');
 
			   //Buscamos el Nodo Artist i dentro el atributo name
			   $(xml).find("Artist").each(function () {
					name = $(this).attr('name');
			   });
			   //alert(name + " - " + title );
			   $("#historial_song").text(name + " - " + title);
			});
		});
 
	},3000);
}
 
function readSongFirst(){
	var fecha=new Date();
if((fecha.getDay()==5 && fecha.getHours()>=8 && fecha.getHours()<=22) ||
   (fecha.getDay()==7 && fecha.getHours()>=19,00 && fecha.getHours()<=23,55))
{
		alert("No se puede mostrar")
	}else {
		$.get("../../../xml/XMLSongs.xml", function (xml) {
			$(xml).find("Song").each(function () {
 
				var title = $(this).attr('title');
				if (title=='' || title=='undefined'){
					title = 'Sense titol'
				}
				//Buscamos el Nodo Artist i dentro el atributo name
				$(xml).find("Artist").each(function () {
					name = $(this).attr('name');
					if (name=='' || name=='undefined'){
						name = 'Audio'
					}
				});
				//alert(name + " - " + title );
				$("#historial_song").text(name + " - " + title);
			});
		});
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 29/09/2014 08:28:01
Hola Lee...

Haber, en el código que me mostraste arriba, las peticiones al archivo XML estaban fuera del if(), por esto te comente que se ejecuban siempre.

Ahora, nos muestras que hay dos funciones diferentes readSong() y readSongFirst(). Si quieres que las dos cumplan con los condicionales de las fechas, tendrás que poner el mismo if() en las dos funciones.

3000 son como bien dices milisegundos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function readSong()
{
	setInterval(function(){
		var fecha=new Date();
		if((fecha.getDay()==5 && fecha.getHours()>=8 && fecha.getHours()<=22) ||
		(fecha.getDay()==7 && fecha.getHours()>=19,00 && fecha.getHours()<=23,55))
		{
			//alert("No se puede mostrar")
		}else{
			//$.get("XXXXXXXt/xml/XMLSongs.xml", function (xml) {
			$.get("../../../xml/XMLSongs.xml", function (xml) {
				$(xml).find("Song").each(function () {
				var title = $(this).attr('title');
 
				//Buscamos el Nodo Artist i dentro el atributo name
				$(xml).find("Artist").each(function () {
						name = $(this).attr('name');
				});
				//alert(name + " - " + title );
				$("#historial_song").text(name + " - " + title);
				});
			});
		}
	},3000);
}
 
function readSongFirst()
{
	var fecha=new Date();
	if((fecha.getDay()==5 && fecha.getHours()>=8 && fecha.getHours()<=22) ||
	(fecha.getDay()==7 && fecha.getHours()>=19,00 && fecha.getHours()<=23,55))
	{
		//alert("No se puede mostrar")
	}else{
		$.get("../../../xml/XMLSongs.xml", function (xml) {
			$(xml).find("Song").each(function () {
 
				var title = $(this).attr('title');
				if (title=='' || title=='undefined'){
					title = 'Sense titol'
				}
				//Buscamos el Nodo Artist i dentro el atributo name
				$(xml).find("Artist").each(function () {
					name = $(this).attr('name');
					if (name=='' || name=='undefined'){
						name = 'Audio'
					}
				});
				//alert(name + " - " + title );
				$("#historial_song").text(name + " - " + title);
			});
		});
	}
}

Te he comentado los alert(), ya que comentaste que no querías ningún mensaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 29/09/2014 08:43:53
Hola,
El código que mostré el primer dia en el fichero comprimido ya tenia las dos funciones... pero creí que solo debíamos poner la función en la segunda parte.
El código de las horas lo tenia bien... lo que pasa que solo copie una parte del codigo...

Hago las pruebas y te comento esta mañana.

Gracias por tu paciencia....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 29/09/2014 11:27:11
He probado y funciona poniendo el código también arriba..
lo único que no tengo claro si hace caso de los minutos...
pongo las 11,15 y parece que no hace caso de los minutos... no sé si los escribo bien con una coma... aunque he probado con coma y punto.. y hace lo mismo

a las 11,20 si pongo hasta las 11,01... no muestra nada... si pongo hasta las 11,00 si que muestra la canción

ya me dirás si tendría que hacer caso a los minutos o no...

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Pausar javascrip durante un unas horas al dia...

Publicado por xve (1596 intervenciones) el 29/09/2014 13:41:12
Hola Lee, no vi este cambio: fecha.getHours()<=23,55... esto esta mal!!!

si quieres comparar también con los minutos, tienes que utilizar: fecha.getMinutes()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 29/09/2014 14:53:17

Perfecto.. con esto funciona
if(fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=14 && fecha.getMinutes()<=48)

supongo que esta bien...

acabaré de poner mas horas y miraré si funciona.

Muchas gracias por tu paciencia i ayuda!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pausar javascrip durante un unas horas al dia...

Publicado por lee (18 intervenciones) el 01/10/2014 12:37:41
Hola de nuevo,
He puesto las horas que necesito... y parece que no funciona... o qu eno controle muy bien las horas.
Supongo que coge las horas del ordenador...
puede ser que al popner tantas horas i dias no funcione bien?
gracias

fecha.getDay()==1 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=10 && fecha.getMinutes()<=00) ||
fecha.getDay()==2 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=10 && fecha.getMinutes()<=15) ||
fecha.getDay()==3 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=10 && fecha.getMinutes()<=00) ||
fecha.getDay()==4 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=10 && fecha.getMinutes()<=00) ||
fecha.getDay()==5 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=10 && fecha.getMinutes()<=00) ||
fecha.getDay()==1 && fecha.getHours()>=12 && fecha.getMinutes()>=00 && fecha.getHours()<=12 && fecha.getMinutes()<=31) ||
fecha.getDay()==2 && fecha.getHours()>=12 && fecha.getMinutes()>=00 && fecha.getHours()<=12 && fecha.getMinutes()<=31) ||
fecha.getDay()==3 && fecha.getHours()>=12 && fecha.getMinutes()>=00 && fecha.getHours()<=13 && fecha.getMinutes()<=00) ||
fecha.getDay()==4 && fecha.getHours()>=12 && fecha.getMinutes()>=00 && fecha.getHours()<=13 && fecha.getMinutes()<=00) ||
fecha.getDay()==5 && fecha.getHours()>=12 && fecha.getMinutes()>=00 && fecha.getHours()<=13 && fecha.getMinutes()<=00) ||
fecha.getDay()==1 && fecha.getHours()>=22 && fecha.getMinutes()>=00 && fecha.getHours()<=23 && fecha.getMinutes()<=00) ||
fecha.getDay()==2 && fecha.getHours()>=22 && fecha.getMinutes()>=00 && fecha.getHours()<=23 && fecha.getMinutes()<=00) ||
fecha.getDay()==3 && fecha.getHours()>=22 && fecha.getMinutes()>=00 && fecha.getHours()<=23 && fecha.getMinutes()<=00) ||
fecha.getDay()==4 && fecha.getHours()>=22 && fecha.getMinutes()>=00 && fecha.getHours()<=23 && fecha.getMinutes()<=00) ||
fecha.getDay()==5 && fecha.getHours()>=22 && fecha.getMinutes()>=00 && fecha.getHours()<=23 && fecha.getMinutes()<=00) ||
fecha.getDay()==6 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=15 && fecha.getMinutes()<=00) ||
fecha.getDay()==6 && fecha.getHours()>=20 && fecha.getMinutes()>=00 && fecha.getHours()<=21 && fecha.getMinutes()<=00) ||
fecha.getDay()==7 && fecha.getHours()>=00 && fecha.getMinutes()>=01 && fecha.getHours()<=2 && fecha.getMinutes()<=00) ||
fecha.getDay()==7 && fecha.getHours()>=8 && fecha.getMinutes()>=00 && fecha.getHours()<=14 && fecha.getMinutes()<=00)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar