我正在为一个网站制作一个仪表板,我正在添加的最后一个功能是时钟。我有一个基本函数,它获取日期/时间,格式化它,并将其输出到一个时钟,但我的setInterval
函数在Webkit浏览器中不起作用。我尝试过几种不同的方式重新安排,但没有成功。
在Webkit中,如果我通过突出显示时钟文本或滚动等强制它重新渲染,时钟将重新加载。
我的代码如下所示:
$(document).ready(function() {
setInterval(function() {
var time = new Date();
var hour = time.getHours();
var min = time.getMinutes();
var sec = time.getSeconds();
var amPm = (hour < 12 ? "AM" : "PM");
hour = (hour <= 12 ? hour : hour - 12);
min = (min < 10 ? "0" + min : min);
sec = (sec < 10 ? "0" + sec : sec);
var currentTime = (hour + " : " + min + " : " + sec + " " + amPm);
$('#time').html(currentTime);
var date = time.getDate();
var month = time.getMonth();
var year = time.getYear();
year = year - 100;
var todaysDate = (month + "/" + date + "/" + year);
$('#date').html(todaysDate);
var dayNum = time.getDay();
var day = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$('#day').html(day[dayNum]);
}, 1000);
});
适用于Firefox,但不适用于Chrome或Safari。有谁知道为什么setInterval
在Webkit中表现得很奇怪,修复是什么?
答案 0 :(得分:0)
事实证明,我的代码中存在一些错误。一个是时间对象需要全局声明。此外,最好的语法是将整个事物包装到一个名为updateClock()
的函数中,然后使用setInterval
,在函数之后没有()
setInterval(updateClock, 1000);
祝你好运