我正在构建一个运行无格式网络浏览器的数字建筑目录。我想执行各种Javascript& jQuery在一天中的特定时间运行,最初只是为了隐藏和显示各种对象,但稍后也会做一些更高级的操作。
我不能使用一个简单的计时器,因为事件需要在一小时内准确触发,或者恰好在小时前5分钟触发,等等.AKA,而不仅仅是“每小时”。
最好的方法是什么?
答案 0 :(得分:0)
在计算当前时间与目标时间之间的差异后,你可以使用简单的计时器:
node.js中的示例:
> setTimeout(function() { console.log(new Date()); }, (new Date('2014-03-15T02:38:30+0100')).getTime() - Date.now());
{ _idleTimeout: 22653,
_idlePrev:
{ _idleNext: [Circular],
_idlePrev: [Circular],
msecs: 22653,
ontimeout: [Function: listOnTimeout] },
_idleNext:
{ _idleNext: [Circular],
_idlePrev: [Circular],
msecs: 22653,
ontimeout: [Function: listOnTimeout] },
_idleStart: 1394847487347,
_onTimeout: [Function],
_repeat: false }
> Sat Mar 15 2014 02:38:30 GMT+0100 (CET)
您可以使用以下方式创建特定时间的时间戳:
date = new Date('YYYY-MM-DDThh:mm:ss+0000'); // adjust the time zone as needed
date.getTime() // e.g. 1394847510000
现在从中减去Date.now()
,你得到了等待的毫秒数,现在可以传递给setTimeout
。