JavaScript で (つまり、「プラグイン」経由ではなく) すぐに利用できるものはありsetTimeout
ますか?
setToHappen(function () {
alert('Wake up!');
}, new Date("..."));
はい、new Date()
既存の日付オブジェクトを単純に差し引いて (またはその逆かもしれません)、ミリ秒数を取得することでこれを実行できることはわかっていますが、それでも知りたいです。
JavaScript で (つまり、「プラグイン」経由ではなく) すぐに利用できるものはありsetTimeout
ますか?
setToHappen(function () {
alert('Wake up!');
}, new Date("..."));
はい、new Date()
既存の日付オブジェクトを単純に差し引いて (またはその逆かもしれません)、ミリ秒数を取得することでこれを実行できることはわかっていますが、それでも知りたいです。
現在から日付オブジェクトまでのミリ秒数を計算する必要があります。
function setToHappen(fn, date){
return setTimeout(fn, date - Date.now());
}
注意@calvinの答えに注意してください:ミリ秒数が。より大きい場合、これは機能しません2147483647
。
いいえ。ただし、独自の関数を簡単に作成できます。現在と指定された瞬間の差をミリ秒単位で計算し、それを使用してsetTimeoutを呼び出します。
このようなもの:
setToHappen = function(fn, date){
var now = new Date().getTime();
var diff = date.getTime() - now;
return setTimeout(fn, diff);
}
編集:1000による余分な乗算を削除しました、それを指摘してくれたクリスに感謝します!
人々はオブジェクトを使用してタイムアウト間隔を計算することについて話しているので、interval パラメータに受け入れられる最大値は、符号付き 32 ビット整数である2147483647 (2^31 - 1)でdate
あることに注意してください。それは25日弱になります。setTimeout()
PRIntervalTime
Date.now()
日付から単純に差し引くことができます
const myDate = new Date('...');
setTimeout(func, myDate - Date.now());