控制器:
$number = rand(1, 100);
查看:
<div id="lucky">
Your lucky number: <?php echo $number ?>.
</div>
如何在不手动刷新页面的情况下每小时更新$number
的值?我可以使用 JavaScript / jQuery 中的setInterval
,但我想在整个小时(0:00,1:00,2:00等)完成这项工作。做这个的最好方式是什么?我可以使用PHP,CRON,JS和JS框架......
答案 0 :(得分:0)
尝试找出它现在的时间,计算出下一个整整一小时的时间,然后等待那么久:
function doSomething() {
var d = new Date(),
h = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + 1, 0, 0, 0),
e = h - d;
if (e > 100) { // some arbitrary time period
window.setTimeout(doSomething, e);
}
// your code(May be an ajax call to show lucky num)
}
检查e&lt; 100只是为了确保你不会在5毫秒之类的事情上做setTimeout并让它成为一个疯狂的循环。
答案 1 :(得分:0)
您可以使用解决方案
var d = new Date();
var firstTrigger = 60000* (60 - d.getMinutes());
// This is for 1st Time Trigger
setTimeout(function(){
console.log("1st time trigger", rand(1, 100));
// This is continuous trigger every full hour
setInterval(function(){
console.log("Continuous trigger every hour", rand(1, 100));
}, 3600000);
}, firstTrigger);
&#13;
在您的情况下,您将触发代码而不是console.log
。
希望这会对你有所帮助。