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