Chiama una funzione javascript a un’ora specifica del giorno

per esempio voglio chiamare una funzione js alle 10.00.00.00 come posso fare?

 var now = new Date(); var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 30, 0, 0) - now; setTimeout(function{openAPage(), setInterval(openAPage, 60*1000)}, millisTill10) function openAPage() { var startTime = new Date().getTime(); var myWin = window.open("http://google.com","_blank") var endTime = new Date().getTime(); var timeTaken = endTime-startTime; document.write("
button [email protected]
") document.write(new Date(startTime)); document.write("
page [email protected]
") document.write(new Date(endTime)); document.write("
time taken
") document.write(timeTaken); myWin.close() }

mi aspetto da questo codice alle 00.30 si aprirà Google e poi ogni 1 minuto dopo lo farà di nuovo? cosa c’è di sbagliato in quel codice?

Avrai bisogno di setTimeout per impostare un timer e una data per calcolare quanto tempo deve trascorrere il timer finché non scatta.

 var now = new Date(); var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0, 0) - now; if (millisTill10 < 0) { millisTill10 += 86400000; // it's after 10am, try 10am tomorrow. } setTimeout(function(){alert("It's 10am!")}, millisTill10); 

La mia soluzione per l’esecuzione di uno script in un momento specifico, senza alcun errore nel controllo del timeout negativo.

 //year, month 0-11, date, hour, min (can add ,sec,msec) var eta_ms = new Date(2015, 0, 21, 17, 0).getTime() - Date.now(); var timeout = setTimeout(function(){}, eta_ms); 

Bene, puoi usare ontime il pacchetto del nodo

Supponendo che il codice si trovi su una pagina Web che verrà caricata prima delle 10:00 e sarà ancora visualizzata alle 10:00, è ansible utilizzare setTimeout() per impostare un evento a tempo. la funzione accetta alcune istruzioni JS da eseguire e il numero di millisecondi prima che venga eseguito. Puoi trovare questa seconda parte abbastanza facilmente con le funzioni di data incorporate.