JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで2つの日付の差(日数)を取得する方法

JavaScriptで2つの日付の間の日数を取得するには、Math.floor()メソッドを使用します。基本的な考え方は、まず2つの日付の差をミリ秒単位で求め、それを1000で割って「秒」に変換し、さらに86400(1日の秒数=60秒×60分×24時間)で割ることで「日数」を算出するというものです。最後にMath.floor()で小数点以下を切り捨てれば、整数の日数が得られます。

サンプルコード

以下のコードを実行すると、現在の日付と指定した日付の間の日数を取得できます。

<html>
   <head>
      <title>JavaScript 日数の取得</title>
   </head>
   <body>
      <script>
         var date1, date2;
         // 現在の日時を取得
         date1 = new Date();
         document.write(""+date1);
         // 比較対象の日時を指定
         date2 = new Date( "Dec 10, 2015 20:15:10" );
         document.write("<br>"+date2);
         // 2つの日付の差を秒単位で取得
         var res = Math.abs(date1 - date2) / 1000;
         // 秒を日数に変換し、切り捨てる
         var days = Math.floor(res / 86400);
         document.write("<br>Difference: "+days);
      </script>
   </body>
</html>

実行結果

Mon May 28 2018 09:32:56 GMT+0530 (India Standard Time)
Thu Dec 10 2015 20:15:10 GMT+0530 (India Standard Time)
Difference: 899

処理の流れのポイント

  • Math.abs():Dateオブジェクト同士の減算結果はミリ秒単位の数値になるため、前後関係に関わらず正の値を得るために絶対値を取ります。
  • ÷ 1000:ミリ秒を秒に変換します。
  • ÷ 86400:1日は86400秒なので、秒を日数に変換します。
  • Math.floor():端数の日・時間を切り捨て、完全な日数のみを取得します。

なお、より正確な日付差の計算が必要な場合は、UTCタイムゾーンを考慮したり、夏時間(DST)の影響を避けるためにDate.UTC()を使う方法もあります。また、モダンな開発ではday.jsLuxonなどのライブラリを利用すると、日付計算をより簡潔に記述できます。

  1. Androidで2つの日付の差分(日数)を取得する方法【サンプルコード付き】

    はじめに この記事では、Androidアプリで2つの日付の差分(日数)を取得する方法を、実際に動作するサンプルコードとともに解説します。日付の差分計算は、利用期間の表示やイベントまでの残り日数のカウントなど、さまざまな場面で役立つ基本的な処理です。 実装の手順 ステップ1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_main.xml)の編集 res/layout/ac

  2. Pythonで2つの日付の間の日数を計算する方法を解説

    Pythonでは、シンプルな日付演算を使うことで、2つの日付の間の日数を簡単に計算できます。日数の差を求めたい2つの日付を定義し、それらを引き算すると timedelta オブジェクトが得られます。このオブジェクトの days プロパティを参照することで、目的の日数を取得できます。基本的な手順datetime モジュールから date クラスをインポートします。差を求めたい2つの日付を date オブジェクトとして定義します。2つの日付を引き算して timedelta オブジェクトを生成します。days プロパティの値を出力します。サンプルコードfrom datetime import dat