2つのDateオブジェクトを取得し、時間の差を計算したいと思います。
時間の差が18時間未満の場合、日付オブジェクトを配列にプッシュします。
Javascript/jQueryは、重要ではありません。何が一番うまくいくのか。
最も簡単な方法は、日付オブジェクトを互いに直接減算することです。
例えば:
var hours = Math.abs(date1 - date2) / 36e5;
減算は、2つの日付の差をミリ秒単位で返します。 36e5
は、60*60*1000
の科学表記法であり、ミリ秒の差を時間に変換するための除算です。
getTime
( mdn doc )を使用してみてください:
var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000;
if (diff < 18) { /* do something */ }
Math.abs()
を使用すると、どの日付が最も小さいかわかりません。このコードはおそらくより関連性があります。
var diff = (date1 - date2) / 3600000;
if (diff < 18) { array.Push(date1); }
日付オブジェクトでvalueOf
を呼び出して取得したタイムスタンプを使用します。
var diff = date2.valueOf() - date1.valueOf();
var diffInHours = diff/1000/60/60; // Convert milliseconds to hours