JavaScript - mensaje a cierta hora

   
Vista:
Imágen de perfil de orlando

mensaje a cierta hora

Publicado por orlando orlandorodriguez40@hotmail.com (12 intervenciones) el 17/03/2017 19:36:43
Buenas tardes y gracias de antemano.

Resulta que tengo una tabla de horarios en una base de datos mysql con los siguientes datos:

idhorario
horario

tengo un registro cargado:

1
7:00

Quisiera que cuando fuera las 7:00 en la computadora se active un alerta con el siguiente mensaje: SON LAS 7. Claro la lectura se tiene que hacer es desde la base de datos.

Se podría realizar este script?

La duda principal mía es que como mantengo activa la base de datos para que este alerta en la comparación del horario, osea, que compare en ese preciso momento la hora.
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 txema

mensaje a cierta hora

Publicado por txema (21 intervenciones) el 18/03/2017 02:51:27
Hola Orlando:

Dado que lo que quieres es mostrar el mensaje de acuerdo al horario de la computadora/ordenador, puedes servirte simplemente de Javascript.

Te lo muestro sobre dos líneas donde se muestra en la primera la hora actual de tu ordenador y en la segunda solo aparecerá cuando sean las 7:00:00.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<p id="demo"></p> <!-- Muestra la hora actual -->
<p id="demo2"></p> <!-- Muestra el mensaje a las 7:00:00 -->
<script>
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
    var hora = new Date();
    var myhora = hora.toLocaleTimeString();
    document.getElementById("demo").innerHTML = "Son las " + myhora + " horas";
    var hora7 = "7:00:00";
	if (myhora == hora7){
	  document.getElementById("demo2").innerHTML = "Son las " + hora7 + " horas";
	}
}
</script>

Si por alguna razón la hora ha de ser traída de la base de datos, tienes que reemplazar lo he he denominado como variable hora7 a la que recibas de dicha base.

En principio el mensaje quedará a partir de las 7:00:00.
Con mínimas modificaciones puedes hacer que desaparezca transcurrido un tiempo determinado.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Orlando

mensaje a cierta hora

Publicado por Orlando orlandorodriguez40@hotmail.com (12 intervenciones) el 18/03/2017 03:11:43
Muchas gracias txema.

Voy a probar el script y luego te aviso.

Saludos!
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 Orlando

mensaje a cierta hora

Publicado por Orlando orlandorodriguez40@hotmail.com (12 intervenciones) el 18/03/2017 06:21:21
Hola txema.

Probé directamente colocando la hora manual y corre perfectamente, luego coloque la hora en el campo horario en la tabla de la base de datos y me envio un blanco, osea, no consiguio nada.

Me muestra este resultado:

Son las 1:21:32 horas

NO HAY




Te anexo el codigo a ver si estoy haciendo algo mal:

este es mi .php:

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
55
56
57
58
59
60
61
<!DOCTYPE html>
<html>
 
<head>
	<title>Aviso se acerca la hora</title>
</head>
<body>
 
<p id="demo"></p> <!-- Muestra la hora actual -->
<p id="demo2"></p> <!-- Muestra el mensaje a las 7:00:00 -->
<script>
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
    var hora = new Date();
    var myhora = hora.toLocaleTimeString();
    document.getElementById("demo").innerHTML = "Son las " + myhora + " horas";
 
    //var hora7 = "23:34:00";
 
    var hora7 =" '.$PHPvariable.'";
 
    if (myhora == hora7){
 
	document.getElementById("demo2").innerHTML = "Son las " + hora7 + " horas";
 
	}
}
 
</script>
 
 
<?php
 
$PHPvariable = "<script> document.write(myhora) </script>";
 
 
include 'conexion.php';
 
$consulta="SELECT * FROM horarioestudiante WHERE horaInicio='$PHPvariable'";
 
$resultado=mysqli_query($conexion, $consulta);
 
$fila=mysqli_num_rows($resultado);
 
if ($fila>0) {
 
echo "SI HAY";
 
}
 
else {
 
echo "NO HAY";
 
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
 
</body>
</html>
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 txema

mensaje a cierta hora

Publicado por txema (21 intervenciones) el 18/03/2017 09:18:33
Lo que estoy viendo es que ese "NO HAY" es el resultado del echo que tienes en
1
2
3
4
5
6
if ($fila>0) {
echo "SI HAY";
}
else {
echo "NO HAY";
}

Esto es, no llegas a leer la hora desde la base de datos. Según tu estructura, el valor de la hora debería llegar a $PHPvariable.
Compruebalo en PHP con un
1
echo $PHPvariable;

Por otra parte, cuando llegues a recoger la hora (verifica que tiene el mismo formato que la hora actual) en la variable $PHPvariable la inserción de la misma a Javascript sería:
1
var hora7 ='<?php echo $PHPvariable;?>'

Personalmente no soy amigo de insertar PHP en Javascript pero te puede servir,
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 Orlando

mensaje a cierta hora

Publicado por Orlando orlandorodriguez40@hotmail.com (12 intervenciones) el 18/03/2017 16:38:57
Que tal txema.

Accedi a la base de datos y le coloque formato: time como time: 00:00:00

hice los arreglos del la siguiente forma y me sigue enviando registro en blanco en $fila, tampoco me muestra el reloj.

lo que si me puedo dar cuenta que para que corra la consulta a la base de datos tengo que actualizar en el navegador o F5 para ver repuesta, la idea era que cuando se ejecute el script inmediatamente lea en la base de datos y compare para que de el resultado de: SI HAY , ahorita el resultado que me da es : NO HAY

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
55
56
57
58
59
60
61
<!DOCTYPE html>
<html>
 
<head>
	<title>Aviso se acerca la hora</title>
</head>
<body>
 
<p id="demo"></p> <!-- Muestra la hora actual -->
<p id="demo2"></p> <!-- Muestra el mensaje a las 7:00:00 -->
<script>
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
    var hora = new Date();
    var myhora = hora.toLocaleTimeString();
    document.getElementById("demo").innerHTML = "Son las " + myhora + " horas";
 
     var hora7 ='<?php echo $PHPvariable;?>'
 
    if (myhora == hora7){
 
	document.getElementById("demo2").innerHTML = "Son las " + hora7 + " horas";
 
	}
}
 
</script>
 
 
<?php
 
$PHPvariable = "<script> document.write(myhora) </script>";
 
echo $PHPvariable;
 
 
include 'conexion.php';
 
$consulta="SELECT * FROM horarioestudiante WHERE horaInicio='$PHPvariable'";
 
$resultado=mysqli_query($conexion, $consulta);
 
$fila=mysqli_num_rows($resultado);
 
if ($fila>0) {
 
echo "SI HAY";
 
}
 
else {
 
echo "NO HAY";
 
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
 
</body>
</html>
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 txema

mensaje a cierta hora

Publicado por txema (21 intervenciones) el 18/03/2017 18:30:43
Hola Orlando.

Varias observaciones te fueron pasadas por chat.

Recuerda que (si bien no me gusta) la inserción de PHP en Javascript sería:
1
var hora7 ='<?php echo $PHPvariable;?>'

Personalmente optaría por crear un campo oculto y tomarlo desde el HTML generado por Javascript.

PD.: Te agradecería que insertes los códiGos dentro de la etiqueta <code> (símbolo </>)..

Saludos y buen fin de semana
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
Revisar política de publicidad