1

如果我在 google Chrome(版本 40.0.2214.111 m)中运行以下代码,系统时钟会加速,并且系统时钟每 10 秒快 1-2 秒。

我已经在运行 windows 7 64 位、intel Atom D525 1.8GHz、2GB RAM 的机器上对此进行了测试。已安装所有 Windows 更新和驱动程序。

setInterval(function(){
   var clientTime = new Date().getTime();
   console.log(clientTime)
},100);

在 IE 中运行相同的代码时,我对系统时间更改没有任何问题。

还有其他人遇到同样的问题吗?

http://jsfiddle.net/k4shz7cr/

更新

我添加了一个小测试,通过使用 jquery 和 php 从网络服务器获取时间(必须是另一台机器)。您可以看到客户端时间相对于网络服务器时间发生了变化。

在 webbserver 上关注 serverTime.php。

<?php
    date_default_timezone_set('Europe/Stockholm');
    $date = microtime(true);
    print $date;
?>

上面的(第一个)JS,改为:

setInterval(function(){

   $.ajax({
       url: 'serverTime.php',
       type: 'POST',
       success: function( serverTime ){
          var clientTime = new Date().getTime() / 1000;
          var diff = serverTime - clientTime;

          console.log(serverTime,clientTime,diff)
       }
   });

},100);

!网络服务器不能与客户端计算机相同,那么差异将不会显示。

由于服务器代码的执行时间,您总是会得到服务器时间和客户端时间之间的差异,但差异会有些恒定。

2015-02-17 更新

现在我通过安装节点并运行相同的代码进行了测试:

setInterval(function(){
   var clientTime = new Date().getTime();
   console.log(clientTime)
},100);

在我打开谷歌浏览器之前,我没有任何变化,然后突然系统时间开始改变,速度与上述不同,而是每分钟几秒钟。(刚开始铬,没有别的)

疯了吧,

4

0 回答 0