如何使这个javascript在特定时间启动?
我在下面有一个javascript: 但我想做的是让它在每天早上7:30开始!我不知道这是否可能,但如果你知道如何分享!如果可以的话,谢谢你如何使这个javascript在特定时间启动?,javascript,Javascript,我在下面有一个javascript: 但我想做的是让它在每天早上7:30开始!我不知道这是否可能,但如果你知道如何分享!如果可以的话,谢谢你 <script> var timer; var stop; function startCount() { stop = false; timer = setInterval(count,1); } function stopCount() { stop = true; } funct
<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>
无功定时器;
var停止;
函数startCount()
{
停止=错误;
定时器=设置间隔(计数,1);
}
函数stopCount()
{
停止=真;
}
函数计数()
{
如果(停止==false)
{
var el=document.getElementById('counter');
var currentNumber=parseFloat(el.innerHTML);
el.innerHTML=currentNumber+0.00000003831417624521;
}
}
0
让Javascript在每天早上7:30左右启动的唯一方法是用户已经启动了页面 如果是这样的话,在本例中,我将假设是这样的,当用户加载页面时,您将首先让javascript检查当前时间,并计算从现在到早上7:30之间的秒数 从这里开始,您将启动一个setTimeout,它将在计算的秒数之后运行-setTimeout以毫秒为单位工作,因此setTimeout参数将是:number of seconds*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后的任何时间运行此代码。您只需执行时间检查,如果不匹配,则计算差异并设置回调。因为计时测量不是很准确,所以您可能希望返回到更早的某个时间进行另一次测量
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);
}
}
函数每天运行(func、timeToRun、lastRun){
var now=new Date().getTime();
var timeOfDay=现在为%86400;
if(timeOfDay-timeToRun<5000&&now-lastRun>83200){
setTimeout((函数(func、timeToRun、lastRun){
返回函数(){
每天运行(func、timeToRun、lastRun);
};
})(乐趣,timeToRun,现在),83200);
func();
}否则{
setTimeout((函数(func、timeToRun、lastRun){
返回函数(){
每天运行(func、timeToRun、lastRun);
};
})(乐趣,时间运行,最后一次运行),(时间运行-现在)*0.95+1000);
}
}
应调整值5000、83200、0.95和1000,以满足您的精度和准确度要求。这太复杂了。