我在下面有一个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>
答案 0 :(得分:2)
每天早上7:30开始Javascript启动的唯一方法就是用户已经有了页面。
如果是这种情况,并且对于这个例子,我将假设情况就是这样,当用户加载页面时,你最初会用javascript检查当前时间并计算现在和7之间的秒数。 :30AM
从那里开始,你将启动一个setTimeout,它将在计算的秒数之后运行 - setTimeout以毫秒为单位运行,因此setTimeout参数将是:秒数* 1000。
答案 1 :(得分:0)
答案 2 :(得分: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之后的任何时间运行此代码。
答案 3 :(得分: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以满足您的精度和准确度需求。