2012-02-10 30 views
-1

我在下面有一個javascript腳本: 但是我想要做的就是讓它在每天早上7:30開始!我不知道它是否可能,但如果你知道如何分享!謝謝,如果你可以!如何讓這個JavaScript在特定時間開始?

<script> 

var timer; 
var stop; 

function startCount() 
{ 
     stop = false; 
     timer = setInterval(count,1); 
} 
function stopCount() 
{ 
     stop = true; 
} 
function count() 
{ 
     if(stop == false) 
      { 
      var el = document.getElementById('counter'); 
      var currentNumber = parseFloat(el.innerHTML); 
      el.innerHTML = currentNumber+0.00000003831417624521; 
     } 
} 
</script> 
</head> 
<body> 

<div id="counter">0</div> 

<input type="button" value="reset" id="reset" onclick="document.getElementById('counter').innerHTML = 0;" /> 
<input type="button" value="start" id="start" onclick="startCount();" /> 
<input type="button" value="stop" id="stop" onclick="stopCount();" /> 
</body> 
</html> 

回答

2

在JavaScript中開始在像7:30的唯一途徑每天早上AM是否已經有用戶翻頁。

如果是這樣的話,對於這個例子,我將假設它是這樣的,當用戶加載頁面時,您最初將javascript檢查當前時間並計算現在和之間的秒數7:30 AM。

從那裏,你將啓動,將秒計算的號碼後運行的setTimeout - setTimeout的工作在毫秒,所以setTimeout的說法是:秒數* 1000

0
setTimeout(function checkTime() { 
    var now = new Date; 
    if (now.getHours() >= 7 && now.getMinutes() >= 30) { 
     // run special code here 
    } else { 
     setTimeout(checkTime, 10); 
    } 
}, 10); 

這是假設你希望在上午7:30之後的任何時間運行此代碼。

0

您可以簡單地執行時間檢查,如果它不匹配,計算差異並設置回調。由於時間測量不是很準確,因此您可能需要提前回撥以進行另一次測量。

function runEveryDay(func, timeToRun, lastRun) { 
    var now = new Date().getTime(); 
    var timeOfDay = now % 86400; 
    if (timeOfDay - timeToRun < 5000 && now - lastRun > 83200) { 
     setTimeout((function (func, timeToRun, lastRun) { 
      return function() { 
       runEveryDay(func, timeToRun, lastRun); 
      }; 
     })(fun, timeToRun, now), 83200); 
     func(); 
    } else { 
     setTimeout((function (func, timeToRun, lastRun) { 
      return function() { 
       runEveryDay(func, timeToRun, lastRun); 
      }; 
     })(fun, timeToRun, lastRun), (timeToRun - now) * 0.95 + 1000); 
    } 
} 

值5000,83200,0.95和1000應根據您的精度和精度要求進行調整。

+0

這是嚴重的過於複雜。 – Trevor 2012-02-10 01:19:50

相關問題