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

JavaScriptで2つのタイムスタンプ間の時間差を秒単位で取得する方法

2つの日時(タイムスタンプ)の間の時間差を求めたい場合は、以下のコードを試してみてください。このサンプルでは、2つのタイムスタンプ間の合計の日数・時間・分・秒を計算して表示します。

仕組みのポイント

JavaScriptでは、Date オブジェクト同士を減算すると、その差がミリ秒単位で返されます。したがって、1000で割ることで秒単位の差分を求めることができます。さらに Math.floor() と剰余演算子(%)を組み合わせることで、日数・時間・分・秒に分解できます。

サンプルコード

<html>
   <head>
      <title>JavaScript Dates</title>
   </head>
   <body>
      <script>  
         var date1, date2;  

         date1 = new Date( "Jan 1, 2018 11:10:05" );
         document.write("+date1);

         date2 = new Date( "Jan 1, 2018 08:15:10" );
         document.write("<br>"+date2);

         // ミリ秒の差分を秒に変換
         var res = Math.abs(date1 - date2) / 1000;
         
         // 2つの日付間の合計日数を取得
         var days = Math.floor(res / 86400);
         document.write("<br>Difference (Days): "+days);                        
         
         // 時間を取得        
         var hours = Math.floor(res / 3600) % 24;        
         document.write("<br>Difference (Hours): "+hours);  
         
         // 分を取得
         var minutes = Math.floor(res / 60) % 60;
         document.write("<br>Difference (Minutes): "+minutes);  
         
         // 秒を取得
         var seconds = res % 60;
         document.write("<br>Difference (Seconds): "+seconds);  
      </script>
   </body>
</html>

実行結果

Mon Jan 01 2018 11:10:05 GMT+0530 (India Standard Time)
Mon Jan 01 2018 08:15:10 GMT+0530 (India Standard Time)
Difference (Days): 0
Difference (Hours): 2
Difference (Minutes): 54
Difference (Seconds): 55

コードの解説

  • Math.abs(date1 - date2) / 1000:Dateオブジェクトの減算結果はミリ秒で返されるため、絶対値を取った上で1000で割り、秒単位に変換しています。
  • Math.floor(res / 86400):1日は86400秒なので、これで割ることで日数を求めます。
  • Math.floor(res / 3600) % 24:3600秒(1時間)で割った商の24での余りが「時間」に相当します。
  • Math.floor(res / 60) % 60:60秒(1分)で割った商の60での余りが「分」に相当します。
  • res % 60:60で割った余りがそのまま「秒」となります。

このように、Dateオブジェクトの差分と簡単な算術演算を組み合わせるだけで、任意の2つの日時の差を柔軟に計算できます。

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

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

  2. C++で2つの時刻の差を計算する方法(HH:MM:SS形式)

    プログラミングでは、2つの時刻の差を計算する場面がよくあります。例えば、処理時間の測定やタイムカードの管理などがその代表例です。本記事では、C++を使って「時:分:秒」の形式で与えられた2つの時刻の差を求める方法を解説します。 問題の概要 HH:MM:SS形式(HHは時間、MMは分、SSは秒を表す)で表された2つの時刻が与えられます。この2つの時刻の差を、同じHH:MM:SS形式で出力するのが目的です。 入力例と出力例 時刻1 = 8:6:2 時刻2 = 3:9:3 時刻の差 = 4:56:59 計算の考え方 時刻の差を求める際のポイントは、桁借り(繰り下がり)の処理です。引き算の結果が