JavaScript: 日付や時間の差を計算する

日付や時間の差を求めたい場合は、getTime()メソッドでタイムスタンプを取得し、 タイムスタンプの差を計算します。

日付の差を計算する

変数d1、d2に適当な日時を入れて、差を計算してみます。


var d1 = new Date('2017/01/05 12:15:20');
var d2 = new Date('2016/12/15 01:09:02');

var diffTime = d1.getTime() - d2.getTime();
var diffDay = Math.floor(diffTime / (1000 * 60 * 60 * 24));
console.log(diffDay);  // 21

getTime()メソッドで取得したタイムスタンプはミリ秒単位です。 これを日数にするためには「1000 * 60 * 60 * 24」で割る必要があります。

割った値の少数点以下を切り捨てるためにMath.floor()メソッドを使います。

秒の差を計算する

秒の差を求める場合はタイムスタンプの差を「1000」で割ります。


var d1 = new Date('2017/07/20 01:09:55');
var d2 = new Date('2017/07/20 01:09:03');

var diffTime = d1.getTime() - d2.getTime();
var diffSecond = Math.floor(diffTime / (1000));
console.log(diffSecond);  // 52

JavaScript入門