需要javascript在分钟更新时自动重新加载页面

时间:2016-09-05 02:56:13

标签: javascript jquery html

我在我的网站上使用以下代码显示当前时间



function startTime() {
        var today = new Date();
        var h = today.getHours();
        var m = today.getMinutes();
        var s = today.getSeconds();
        m = checkTime(m);
        s = checkTime(s);
        document.getElementById('time').innerHTML =
                 h + ":" + m;
        var t = setTimeout(startTime, 500);
    }
    function checkTime(i) {
        if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
        return i;
    }
&#13;
&#13;
&#13;

我也在我的html中使用自动刷新标签,每隔60秒重新加载页面

<meta http-equiv="refresh" content="60">

我想要的是每当时间改变到下一分钟页面重新加载 这意味着如果当前时间是14:05,当它到达14:06时,页面通过读取此时间更改而不是60秒间隔用户打开页面来重新加载。

3 个答案:

答案 0 :(得分:2)

您可以设置超时查看时钟,只需获取实际秒数,然后等待直到60重新加载:

var date = new Date();
setTimeout(function(){
    window.location.reload(1);
},(60 - date.getSeconds())*1000)

把它放在脚本标签内的头部

答案 1 :(得分:1)

尝试使用此

setTimeout(function(){
    window.location.reload(1);
}, 60000); // 60 sec

来源:How to reload page every 5 second?

或者看看这个

setTimeout(function(){
    var minutes = (new Date()).getMinutes()
    if ( !minutes%15 ) location.reload(); // if minutes is a multiple of 15

},60000); // 60.000 milliseconds = 1 minute

来源:jQuery auto refresh page on clock time

答案 2 :(得分:1)

建议不要使用客户端脚本处理本地时间,因为用户的时钟可能会混乱,因此系统会出现故障。

因此,最好使用任何服务器端语言(如PHP

)从服务器获取时间

在PHP中:

<?php
   echo date("h:i");
?>

现在您可以使用AJAX调用此功能,您可以轻松处理时间。

var result=null;
function getDate(){
    var result=$.ajax({
          url: "script.php",
          type: "POST",
          success: function(data){
              setTimeOut(function(){getDate();},60000);
          }
    }).responseText;
}