如何使这个javascript在某个时间启动

How to make this javascript start at a certain time?

本文关键字:时间 启动 javascript 何使这      更新时间:2023-09-26

下面有一个javascript:但我想做的是让它在每天早上7:30开始!我不知道这是否可能,但如果你知道如何分享!如果可以的话,谢谢!

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

让Javascript在每天早上7:30左右启动的唯一方法是,如果用户已经打开了页面。

如果是这样的话,在这个例子中,我假设是这样的,当用户加载页面时,您最初会让javascript检查当前时间,并计算从现在到上午7:30之间的秒数。

从那里,您将启动一个setTimeout,它将在计算出的秒数后运行——setTimeout以毫秒为单位,因此setTimeout参数将为:number of seconds*1000。

  1. 米利斯伯爵离开到7:30
  2. 调用setTimeout(函数_you_want_to_Call,timeLeft)

https://developer.mozilla.org/en/DOM/window.setTimeout

您可以简单地执行时间检查,如果不匹配,则计算差值并设置回调。由于计时测量不太准确,您可能需要提前一段时间打电话进行另一次测量。

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,以满足您的精度和准确性需求。

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之后的任何时间运行此代码。