Den*_*gan 7 javascript datetime settimeout
JavaScript中是否有任何可用的东西(即不通过"插件")允许我做类似的事情setTimeout
,但我没有说出应该发生多少毫秒的事情,我给它一个日期对象告诉它何时做某事?
setToHappen(function () {
alert('Wake up!');
}, new Date("..."));
Run Code Online (Sandbox Code Playgroud)
是的,我知道我可以通过简单地new Date()
用我现有的日期对象减去(或者可能是相反的方式)来获得毫秒数,但我仍然想知道.
Sim*_*mon 20
您必须找到now和date对象之间的毫秒数.
function setToHappen(fn, d){
var t = d.getTime() - (new Date()).getTime();
return setTimeout(fn, t);
}
Run Code Online (Sandbox Code Playgroud)
不,但你可以轻松编写自己的功能.只需用毫秒计算now和给定时刻之间的差异,然后用它调用setTimeout.
像这样的东西:
setToHappen = function(fn, date){
var now = new Date().getTime();
var diff = date.getTime() - now;
return setTimeout(fn, diff);
}
Run Code Online (Sandbox Code Playgroud)
编辑:删除额外的乘法1000,谢谢克里斯指出了!
由于人们正在谈论使用date
对象计算超时间隔,因此应该注意,间隔参数可接受的最大值setTimeout()
为 2147483647 (2^31 - 1),这PRIntervalTime
是一个有符号的 32 位整数。结果不到25天。
归档时间: |
|
查看次数: |
6827 次 |
最近记录: |