Javascript 如何读取已设置的超时句柄上剩余的时间?
Javascript 如何读取已设置的超时句柄上剩余的时间?,javascript,timeout,Javascript,Timeout,alert(timeoutHandle)返回一些奇怪的数字,比如1或2,调用函数时应该是900和倒计时到0?所以我想我做错了。你不能。设置超时后,您所能做的就是用clearTimeout取消它。setTimeout返回的数字只是一个句柄,它用于通过clearTimeout取消。您可以使用Date.getTime()以毫秒为单位获取Date对象的表示,因此(相当准确的)近似值为: timeoutHandle = setTimeout(function() { //code },1000);
alert(timeoutHandle)
返回一些奇怪的数字,比如1或2,调用函数时应该是900
和倒计时到0
?所以我想我做错了。你不能。设置超时后,您所能做的就是用clearTimeout
取消它。setTimeout
返回的数字只是一个句柄,它用于通过clearTimeout
取消。您可以使用Date.getTime()
以毫秒为单位获取Date
对象的表示,因此(相当准确的)近似值为:
timeoutHandle = setTimeout(function() {
//code
},1000);
timeoutHandle=setTimeout(函数(){
//代码
}, 1000);
timeoutStart=newdate().getTime();
...
var elapsedTime=new Date().getTime()-timeoutStart
setTimeout
和setInterval
的返回值只是一种“计时器ID”-您使用它来使用cleartimout
和cleartiment
停止计时器,它不会动态更改
编辑:正如@Rocket指出的,是的,你可以使用
Date.now()
而不是new Date().getTime()
你可以使用Date.now()
而不是new Date().getTime()
。@Rocket:谢谢,我不知道。Date.now()
直到IE9才在IE中可用。是的,IE很糟糕。你根本不需要在任何主要浏览器中使用getTime()
,因为Date
对象的valueOf()
方法返回与getTime()
相同的值,这意味着从一个日期减去另一个日期可以得到你想要的。例如:var start=new Date();/*东西…*/var appead=新日期()-开始代码>
timeoutHandle = setTimeout(function() {
// code
}, 1000);
timeoutStart = new Date().getTime();
...
var elapsedTime = new Date().getTime() - timeoutStart;