JavaScriptの日時の差分を求めるサンプルです。Dateオブジェクトを使用します。
手順
- 日時の差分を求める場合は以下の手順で行います。
1.現在日時または指定日時を、Dateオブジェクトをnewして生成する。
2.getTime()メソッドでそれぞれの経過ミリ秒を求める。
3.引き算する。
4.ミリ秒を日または時間に変換する。
コード
サンプルのコードです。
例として2018/1/2から2017/12/31の日数の差分と時間の差分を表示しています。
3,7行目は、設定の月は-1になるので(2017,11,31)、(2018,0,2)としています。
<script>
// 1.年月日をセット
var date1 = new Date(2017,11,31);
document.write(date1.toLocaleString() + "<br>"); //2017/12/31 0:00:00
// 2.年月日をセット
var date2 = new Date(2018,0,2);
document.write(date2.toLocaleString() + "<br>"); //2018/1/2 0:00:00
// 3.getTimeメソッドで引き算
var time1 = date2.getTime() - date1.getTime();
// 4.ミリ秒を日に変換
var day1 = time1 / (1000 * 60 * 60 * 24);
document.write("日数の差分=" ,day1 + "日<br>"); //日数の差分=2日
// 5.ミリ秒を時間に変換
var day2 = time1 / (1000 * 60 * 60 );
document.write("時間の差分=" ,day2 + "時間<br>"); //時間の差分=48時間
</script>
Dateオブジェクト
- Dateオブジェクトの主なコンストラクタです。
コンストラクタ 説明 Date() 現在の日時を生成する Date(YYYY,MM,DD,hh,mm,ss,SSS) 指定の日時を生成する
hh,mm,ss,SSSは省略可能 - Dateオブジェクトの経過ミリ秒を取得するメソッドです。
メソッド 説明 getTime() 1970/1/1 00:00:00からの経過ミリ秒を返す - 以下はMDNのDateオブジェクトのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
関連の記事