JavaScript で日付を減算する

Valentine Kagwiria 2023年10月12日
  1. JavaScript で日付を減算するには getTime() 関数を使用する
  2. JavaScript で時刻を減算するには Math.abs() 関数を使用する
  3. 日付を UTC に変換するには Date.UTC() 関数を使用する
JavaScript で日付を減算する

この記事では、JavaScript で 2つの日付をを減算する方法を説明します。

JavaScript で日付を減算するには getTime() 関数を使用する

最初のステップは、内蔵の new Date() 関数を使って 2つの日付を定義することです。2つの日付の差を日数で取得するには、getTime() 関数を使って 2つの日付を引き算し、数値に変換します。結果を日単位で表示したり、必要に応じて時、分、秒、ミリ秒に変換したりすることができます。以下にコード例を示します。

var day1 = new Date('08/25/2020');
var day2 = new Date('12/25/2021');

var difference = day2.getTime() - day1.getTime();

document.write(difference);

出力:

42080400000

JavaScript で時刻を減算するには Math.abs() 関数を使用する

この手続きは絶対値を返すことを除いて最初の手続きと似ています。2つの日付を定義し、次のように Math.abs() 関数を使って 2つの変数を減算する必要があります。

var day1 = new Date('08/25/2020');
var day2 = new Date('08/25/2021');

var difference = Math.abs(day2 - day1);
days = difference / (1000 * 3600 * 24)

console.log(days)

出力:

365

関数 Math.abs() は大文字小文字を区別するので、別の方法で書くと動作しないことに注意してください。

日付を UTC に変換するには Date.UTC() 関数を使用する

問題の日付がサマータイムの変更にまたがっている場合、上記の解決策は少し問題があるかもしれません。これを回避する最良の方法は、日付を UTC に変換して、最初に DST を除去してから両者の差を取得することです。2つの日付に対応する 2つのオブジェクトを持つ関数を作成する必要があります。

function difference(date1, date2) {
  const date1utc =
      Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());
  const date2utc =
      Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());
  day = 1000 * 60 * 60 * 24;
  return (date2utc - date1utc) / day
}

const date1 = new Date('2020-12-10'), date2 = new Date('2021-10-31'),
      time_difference = difference(date1, date2)

console.log(time_difference)

出力:

325

関連記事 - JavaScript DateTime