JavaScript - si llega el día y hora programado entonces muestra "hola"

 
Vista:
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 25/02/2021 23:22:26
Referente al cronómetro creado por Xavi, enlace:
https://www.lawebdelprogramador.com/codigo/JavaScript/6903-Cronometro-compartido-entre-varios-usuarios-que-no-se-reinicia-nunca.html


Me gustaría que al llegar a cierto día y hora pudiese realizar una acción
He pensado en un condicional o quizás sea mejor otra opción, a ver que me podeis aconsejar.

Ejemplo:

Si alarma = 2 : 10 : 05 : 11 then
document.write ("hola")

If alarma = 3 : 00 : 10 : 22 then
document.write ("adios")


No sé que es alarma en el cronómetro de Xavi y no sé escrbir el código para conseguir lo que necesito.

Ayuda por favor. Gracias de antemano.
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
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 26/02/2021 09:15:44
Hola Joel y esposible que me la dé en días y horas ?

es que necesito que la acción se dé en días horas tipo 2 : 10 : 05 : 11.
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por joel (895 intervenciones) el 26/02/2021 13:51:54
haz el calculo, no? pasa eso a segundos y listo, no?

es que no se muy bien porque no quieres utilizar segundos?
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
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 26/02/2021 16:46:41
1 día = 86400 segundos

ok ahora entendí

Pensé que utilizaba el formato dia:hora:minutos:segundos


If DateDiff (86400)
document.write ("hola")


podría servir esto escrito de esta manera?
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 Xavi
Val: 1.807
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por Xavi (68 intervenciones) el 27/02/2021 10:49:46
Hola Xra, si te fijas la variable dateDiff tiene la diferencia horaria en milisegundos...
Si quieres que te muestre un mensaje al cabo de un dia seria algo así:
1
2
3
if (DateDiff>=86400000) {
    alert("1 dia");
}

Si lo quieres comparar con segundos seria algo así:
1
2
3
if (DateDiff/1000>=86400) {
    alert("1 dia");
}

Espero que lo hayas entendido.
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
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 01/03/2021 00:27:09
Gracias Xavi, no consigo que funciones.

1
2
3
4
5
6
7
8
9
if (DateDiff>=3610000) {
    alert("1 dia");
 document.write ("1 dia");
}
 
if (DateDiff/1000>=3610) {
    alert("1 dia");
 document.write ("1 dia");
}
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 Xavi
Val: 1.807
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por Xavi (68 intervenciones) el 01/03/2021 08:23:39
Puedes mostrar el código entero?
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
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 01/03/2021 08:30:55
Así lo tengo ahora mismo, lo puse al final del script


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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
$file="hora.txt";
 
/**
 * Funcion que devuelve la fecha guardada en el archivo de texto
 * Si no existe, lo crea con al fecha actual
 *
 * @return string date
 */
function getFileContent() {
    global $file;
    return (file_exists($file)) ? file_get_contents($file) : saveFileContent();
}
 
/**
 * Funcion que guarda la fecha actual en el archivo de texto
 * El formato del archivo es "YYYY-MM-DD HH:MM:SS"
 *
 * @return string date
 */
function saveFileContent() {
    global $file;
 
    $text=date("Y-m-d H:i:s");
    file_put_contents($file, $text);
    return $text;
}
 
/**
 * Cuando desde javascript mediante AJAX se solicita que se reinicie
 * la fecha, se ejecuta esta condicion y devuelve la nueva fecha para
 * reiniciar el contador.
 */
if (isset($_POST["option"]) && $_POST["option"]=="reset") {
    echo json_encode(array("data"=>saveFileContent()));
    return;
}
?>
<!DOCTYPE html>
<html>
<head>
    <style>
    #timer {
        font-size:54px;
        font-family:Arial;
    }
    .wrapper {
        display:inline-block;
        text-align:center;
    }
    </style>
</head>
 
<body>
    <div class="wrapper">
        <div id="timer"></div>
        <input type="button" id="reset" value="reiniciar cronometro">
    </div>
</body>
</html>
 
<script>
// la variable dateServer tiene la fecha guardada en el servidor
let dateServer=new Date("<?php echo getFileContent();?>");
const timer=document.getElementById("timer");
 
/**
 * Funcion que muestra la hora con el formato deseado
 * Recibe segundos y devuelve dias : horas : minutos : segundos
 *
 * @param int s - recibe la cantidad de segundos
 *
 * @return string
 */
const formatoDuracion = s => {
    const time = [
        Math.floor(s / 86400),
        Math.floor(s / 3600) % 24,
        Math.floor(s / 60) % 60,
        Math.floor(s / 1) % 60,
    ];
    return time.map((el, i) => i>0 ? ("0"+el).substr(-2) : el).join(" : ");
}
 
/**
 * Evento que se ejecuta al pulsar el boton para actualizar la fecha
 * en el servidor mediante AJAX
 */
document.getElementById("reset").addEventListener("click", () => {
    var formData = new FormData();
    formData.append('option', "reset");
 
    const options = {
        method: 'POST',
        body: formData,
    }
 
    fetch(window.location.href, options)
        .then(res => res.json())
        .then(res => dateServer=new Date(res.data));
});
 
/**
 * Interval que se ejecuta cada segundo y muestra la diferencia de la
 * fecha guardada en el servidor con la fecha actual
 */
setInterval(() => {
    const DateDiff=new Date()-dateServer;
    timer.innerHTML=formatoDuracion(parseInt(DateDiff/1000));
}, 1000);
 
 
 
 
if (DateDiff>=3610000) {
    alert("1 dia");
 document.write ("1 dia");
}
 
 
if (DateDiff/1000>=3610) {
    alert("1 dia");
 document.write ("1 dia");
}
 
 
 
</script>
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 Xavi
Val: 1.807
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por Xavi (68 intervenciones) el 01/03/2021 12:38:34
Ahi donde lo has puesto solo pasa la vez que carga la pagina, lo tienes que poner donde se define la variable, dentro del interval... pero debajo de la definicion de la variable DateDiff!!!
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
sin imagen de perfil
Val: 232
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

si llega el día y hora programado entonces muestra "hola"

Publicado por xra (70 intervenciones) el 01/03/2021 15:58:11
Gracias Xavi, va por ahí pero me explico.

Al utilizar ese código veo que llegado el segundo clave, se sustituye el tiempo numérico por la repetición del texto "1 dia" cada segundo

Mi intención es seguir viendo el tiempo numérico y que añada "1 dia" una sola vez y se quede estático .

como document.write ya que necesito que el "1 dia se escriba en el 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