我使用jquery制作了一个时钟。这很好。现在我注意到,时间与我的实际系统时间不同,而我的时钟启动它很好。如果我的时钟运行很长时间,我会从系统时间变化。
我的职责是:
$(document).ready(function(){
var paper = new Raphael(document.getElementById('USClock'),500,500);
var secondHand = paper.path('m 250,250, l 0 -200');
var minuteHand = paper.path('m 250,250, l 0 -200');
var hourHand = paper.path('m 250,250, l 0 -150')
minuteHand.attr({'stroke':"#f00",'stroke-width':5});
hourHand.attr({'stroke':"#0ff",'stroke-width':10})
var myDate = new Date();
var actualSeconds = myDate.getSeconds();
var actualMinutes = myDate.getMinutes();
var actualHours = myDate.getHours();
//
var currentSecondDeg = actualSeconds*6;
var currentMinuteDeg = actualMinutes*6;
var currentHourDeg = actualHours*30 + ((actualMinutes)*0.5);
var num = currentSecondDeg;
secondHand.rotate(currentSecondDeg,250,250);
minuteHand.rotate(currentMinuteDeg,250,250);
hourHand.rotate(currentHourDeg,250,250);
var update = function(){
num +=6;
currentSecondDeg = num;
secondHand.rotate(currentSecondDeg,250,250);
if(( currentSecondDeg % 360) == 0){
num = 0;
currentMinuteDeg +=6;
minuteHand.rotate(currentMinuteDeg,250,250);
currentHourDeg += 0.5; // 360/12 = 30deg per hour so per min 30/60 = 0.5
hourHand.rotate(currentHourDeg,250,250);
if(currentMinuteDeg == 360){
currentMinuteDeg = 0;
}
if(currentHourDeg == 360){
currentHourDeg = 0;
}
}
//$('p').html('SecondsDeg'+(currentSecondDeg)+'<br> currentMinuteDeg'+currentMinuteDeg+'<br>currentHourDeg'+currentHourDeg);
}
var myInterval = setInterval(update,1000);
})
实际上我的问题是为什么设置间隔会从长时间过程中变化。如果任何人发现我的功能的问题或错误的工作方式让我知道。否则,如果有人知道一个很好的方式做得赞赏。
提前谢谢!任何解决方法,否则我怎么能在我的网站上显示4个不同的时钟?从服务器获取时间的唯一方法是什么?