有人知道这个Chrome错误的解决方法吗?

时间:2011-11-12 14:03:57

标签: javascript datetime google-chrome time

所以我有以下脚本:

<HTML><HEAD>
<SCRIPT>
  function alert_minutes() {
    var d=new Date();
    alert ('Minutes past the hour: '+d.getMinutes());
  }
</SCRIPT>
</HEAD><BODY>
  <button onclick="alert_minutes()">Click Me</DIV>
</BODY></HTML>

我将它加载到Chrome中。我按下按钮,它告诉我

Minutes past the hour: 30

这是正确的。我将当地时间快了十分钟,然后再次按下并告诉我

Minutes past the hour: 40

所以没问题。现在我将当地时间设置回正确的时间,第三次按下它仍然显示

Minutes past the hour: 40

我刷新页面,第四次按下它,但它仍然说

Minutes past the hour: 40

我关闭所有Chrome窗口并重新打开浏览器,最后知道正确的时间。

所以我总结说“如果没有关闭并重新打开浏览器,Chrome就无法处理当地时间倒退,只能转发”。使用与Firefox相同的脚本不是这种情况。有人知道这个bug的解决方法吗?我在Win XP上使用Chrome 16。

3 个答案:

答案 0 :(得分:1)

这是正常的,如果它使用单调时钟(例如CLOCK_MONOTONIC)来获取时间

答案 1 :(得分:1)

似乎是五分钟的间隔?

如果你向前移动它会在那里说大约五分钟,即使你把时间移回去,然后更新。

解释更多,你这个功能的原因,有多重要?如果时间紧迫,你应该在服务器端做这件事。

答案 2 :(得分:0)

是的,也可以在WinXP上重现

http://jsfiddle.net/X2HeE/2/

<html>
<head>
<script type='text/javascript'>
function alert_minutes() {
    var d = new Date();
    alert ('Minutes past the hour: ' + d.getMinutes());
}
</script>
</head>
<body>
  <button onclick="alert_minutes()">Click Me</button>
</body>
</html>
  

我也关闭了第9行的'button'标签,你关闭了'div'标签,但那不存在。重置脚本的唯一方法是退出选项卡的进程,然后重新打开它。

PS。对不起我的英文