Appelez une fonction javascript à une heure spécifique

Par exemple je veux appeler une fonction js à 10.00.00.00 heures comment puis-je faire?

<script type="text/javascript"> 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("<br>button pressed@</br>") document.write(new Date(startTime)); document.write("<br>page loaded@</br>") document.write(new Date(endTime)); document.write("<br>time taken</br>") document.write(timeTaken); myWin.close() } </script> 

Je m'attends à ce code à 00.30, il va ouvrir Google, puis toutes les 1 minute plus tard, il le fera de nouveau? Quel est le problème avec ce code?

Vous aurez besoin de setTimeout pour définir une minuterie et Date pour calculer la durée de la minuterie jusqu'à ce qu'il se déclenche.

 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); 

Ma solution pour exécuter un script à un moment précis, et sans erreur, vérifier le délai d'attente négatif.

 //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); 

En supposant que le code se trouve sur une page Web qui sera chargée avant 10h00 et sera toujours visualisée à 10h00, vous pouvez utiliser setTimeout() pour configurer un événement chronométré. La fonction prend une instruction JS à exécuter, et le nombre de millisecondes avant qu'il ne soit exécuté. Vous pouvez trouver cette deuxième partie très facilement avec les fonctions de date intégrées.

Eh bien, vous pouvez utiliser le paquet nœud sur place