我意识到如果我使用新的Date对象,系统时间的更改不会立即反映在javascript,event中。它每分钟才更新一次。
var fakeElapsed = 0;
$(document).ready(function(){
var oldTime = 0;
function fakeTimeLoop(time){
fakeElapsed+=(time-oldTime);
oldTime = time;
$("div").html(fakeElapsed);
}
var clock = new Date();
var start = clock.getTime();
oldTime = clock.getTime();
setInterval(function(){
var clock2 = new Date();
var end = clock2.getTime();
var elapsed = end-start;
if(elapsed%5===0){
fakeTimeLoop(end);
}},
1
);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div></div>
</body>
&#13;
时间码,如果您将时间向前(或向后),则需要一分钟来改变经过的时间。
无论如何都要每秒更新一次系统时间吗?
编辑:对于那些感到困惑的人来说,系统的变化并没有立即反映在Chrome和Opera上,但是在IE和Mozzila上,它立即被反映出来,我假设它的命令是为了避免每次需要构建昂贵的系统调用一个新的Date对象。我在寻找:无论如何要在Chrome / opera中获取当前系统时间或立即检测到系统时间的变化?
答案 0 :(得分:0)
我并不完全清楚你要完成的是什么,但你的setInterval
被编程为每毫秒执行一次(第二个参数以毫秒为单位),但是{{3} }。即使有这个限制,时间也不保证是精确的,所以函数可以很好地执行每11,12,13等毫秒。