麻烦.getTime()

时间:2014-02-19 19:43:49

标签: javascript

我对HTML和Javascript相当新,所以我试图将一个小型增量游戏作为练习。这是我尝试使用的代码来计算自动增益/秒,以及相应地调整选项卡何时不在焦点并且setInterval停止运行。

var startTime = new Date();
var endTime = new Date();
var interval = 100;


window.setInterval(function(){
startTime.getTime();
var timeDiff = startTime - endTime;

do{
document.getElementById('woodAmount').innerHTML =  Math.floor(user.wood += (user.WPS/10));
document.getElementById('oilAmount').innerHTML =  Math.floor(user.oil += (user.OPS/10)); 
document.getElementById('goldAmount').innerHTML =  Math.floor(user.gold += (user.GPS/10));
document.getElementById('coalAmount').innerHTML = Math.floor(user.coal += (user.CPS/10));
timeDiff -= interval;
}while (timeDiff >= interval);

endTime.getTime();
}, interval);

出于某种原因,此代码不会调整选项卡未聚焦的时间,但在聚焦时它会按预期工作。
正如您在此处所看到的,我将interval设置为100毫秒,并将资源/秒(user.WPS)除以10。

但是,当我将interval设置为1秒(1000毫秒)并且将资源/秒除以10时,它始终按预期工作,并适当调整标签未聚焦的时间 任何人都可以解释为什么它在使用全秒间隔时有效,但在使用100毫秒间隔时却不会?

1 个答案:

答案 0 :(得分:3)

.getTime()获取Date对象在创建时或者最后一次在日期对象中设置的时间。它没有得到当前时间。

如果你想获得当前时间,我经常使用这个小功能:

function now() {
   return new Date().getTime();
}

或者,如果您不需要IE8支持,则可以使用Date.now()

此外,getTime()方法从数据对象中抽出时间并从该方法调用返回它。如果你想使用它,你必须在调用.getTime()之后把它放在某处。