JavaScript日期不反映Google Chrome中的系统时间变化
在实现html+js时钟计时器(示例)时,我发现了在前后更改操作系统时间时出现的问题 让我们来看看这个html:JavaScript日期不反映Google Chrome中的系统时间变化,javascript,date,Javascript,Date,在实现html+js时钟计时器(示例)时,我发现了在前后更改操作系统时间时出现的问题 让我们来看看这个html: <div id="time">-</div> 假设你在下午2:22开始翻页。标签显示正确的时间 现在将操作系统本地时间向后更改1小时到1:22PM,现在JSnewdate()正确返回更改后的时间1:22PM 下一次将操作系统本地时间更改为实际日期-下午2:22,现在JSnew date()不会返回下午2:22,而是返回原来的下午1:22。
<div id="time">-</div>
假设你在下午2:22开始翻页。标签显示正确的时间
现在将操作系统本地时间向后更改1小时到1:22PM,现在JSnewdate()
正确返回更改后的时间1:22PM
下一次将操作系统本地时间更改为实际日期-下午2:22,现在JSnew date()
不会返回下午2:22,而是返回原来的下午1:22。因此,在我看来,它不能正确处理对本地系统时间的更改(仅向前?)
似乎只有谷歌浏览器(37.0.2062.124米(64位))才有问题。
在Internet Explorer和Firefox中,JSnew Date()
返回正确的值
更新:有人知道如何使用JS代码为Google chrome“修复”这个问题吗?很有趣。但我必须问,为什么你们要来回切换你们的操作系统时间?这是一个问题,还是一个错误报告?我有一个网站来测试用户的知识,计时器(倒计时)在哪里,用户必须完成他的测试,比方说20分钟。我需要跟踪经过的时间,所以我创建了“秒表”。但是标准的js实现(在web上发现了很多)使用
new Date().getTime()-startTime
,但这种方法无法在本地时间变化后继续使用。通过这样的本地时间更改,用户可以为测试会话增加更多的时间。当然,我们已经检查了服务器上的时间,但不允许这样做。但我们也希望处理客户方面的问题。我并不孤单!事实上,当将操作系统时间前后更改一天时,新的日期()仍然返回昨天的日期!(但适用于IE和Firefox)。我只想测试一件事,但遇到了这个问题,我发现了一些关于这个的规则。如果将时间更改为未来,Chrome的新日期()将在30~60秒后刷新。但将时间更改为过去,新日期()会立即刷新。
var time = document.getElementById('time');
function iteration() {
time.innerHTML = new Date().toString();
}
setInterval(iteration, 100);