我目前使用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/jqClockjquery 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秒的戳,你只需要格式化新的时间戳每秒钟。这为您提供了服务器时间,但没有昂贵的轮询。