实时显示


Displaying real time

我目前使用PHP提供的日期函数在我的网页上显示日期/时间。然而,使用这个函数,日期/时间只会在重新加载页面时更新。我希望每秒钟更新一次日期/时间。

我假设我必须使用javascript或jQuery/ajax为此,但我没有线索如何做到这一点。我希望这里有人能给我一些建议。

这是我使用的(使用jQuery)

var updateClock = function() {
    function pad(n) {
        return (n < 10) ? '0' + n : n;
    }
    var now = new Date();
    var s = pad(now.getUTCHours()) + ':' +
            pad(now.getUTCMinutes()) + ':' +
            pad(now.getUTCSeconds());
    $('#clock').html(s);
    var delay = 1000 - (now % 1000);
    setTimeout(updateClock, delay);
};

这比仅仅使用1000ms计时器更准确,因为否则你会在计时上产生漂移。

我建议你使用Date javascript对象来显示实时日期/时间

function Timer() {
   var dt=new Date()
   document.getElementById('time').innerHTML=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds();
   setTimeout("Timer()",1000);
}
Timer();

您希望显示客户端的时间还是服务器的时间?你可以通过javascript在你的网页上设置一个运行时钟,但它只会显示用户的计算机时间。PHP将显示服务器的时钟。

http://www.elated.com/res/File/articles/development/javascript/creating-a-javascript-clock/clock.html

或jQuery插件:http://plugins.jquery.com/project/jqClock

jquery ajax

setTimeout(function(){
    $.ajax({
      url: "server.php",
      type:"post",
      success: function(data){
       $('#showtime').html(data);
      }
    });
),1000});
<标题> server.php h1> //在这里以方便的格式回显日期/时间 <标题> html
<div id="showtime"></div>

裁判http://api.jquery.com/jQuery.ajax/

你需要使用JavaScript/jQuery。

我不建议使用Ajax和调用web服务器来加载时间,因为这将是每个用户每秒一个HTTP请求,这是一个非常大的流量。

在Javascript中做这个的教程在这里:http://www.elated.com/articles/creating-a-javascript-clock/

(谷歌搜索"Javascript"时钟,有很多例子)。

一种方法,它给你的服务器时间,但没有轮询每秒钟是传递时间戳给javascript(不是格式化的时间),然后让javascript把它变成一个格式化的日期,并使用setTimeout添加1秒的戳,你只需要格式化新的时间戳每秒钟。这为您提供了服务器时间,但没有昂贵的轮询。