素材牛VIP会员
手动修改window系统时间后,js的Date为何有时候不能改变?
 适***的  分类:Html5  人气:1270  回帖:3  发布于6年前 收藏

平时会用new Date来获取当前时间,为了测试有时候会把系统时间手动改掉,这时候发现手动修改时间之后,date对象并不是总是跟着系统时间变,在浏览器不重新打开的情况下,会出现一直为今天的情况

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv6 码匠
Ho***95 UI设计师 6年前#1

new Date的话,应该会取系统时间,但是会有延迟,改完windows时间后,过段时间new Date才会变。

Lv1 新人
wx***73 移动开发工程师 6年前#2

这个问题。。。我以前也纠结过挺久的。
怎么说呢,你修改好时间并能读取到你修改的时间,前提就是,你触发的这个事件需要有“重新读取”时间的这个动作。
我试着简单说说看。

比如
window.onload=function()
{
var oDate=new Date();

document.onclick=function()
{
    alert(oDate)
}

}

比如这个例子,你打开窗口,在这个时间点你读取了系统时间。
然后你点击文档,alert出来了时间的量,但是这个时间的量是你打开窗口那个时候所获取的时间。
so,你要把var oDate放到onclick这个事件里去,每次点击文档,都会抽取一次系统时间
这样问题就解决啦。

Lv5 码农
野***7 CEO 6年前#3

new Date()是会变的,除非你事先把new Date()的值存进了变量,不然就是浏览器bug了。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取