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.