JavaScriptの日時の差分を求めるサンプルです。
目次
サンプル | 日時の差分を求める手順 |
日数と時間の差分を求める |
日時の差分を求める手順
日時の差分は、以下の手順で行います。
1.1つめの現在日時または指定日時を、Dateオブジェクトをnewして生成する。
2.2つめの現在日時または指定日時を、Dateオブジェクトをnewして生成する。
3.getTime()メソッドでそれぞれの経過ミリ秒を求める。
4.引き算する。
5.ミリ秒を日または時間に変換する。
日数と時間の差分を求める
日数と時間の差分を求めるサンプルです。
2018/1/2から2017/12/31の差分を求めます。
<script>
// 1.年月日をセット(A-BのA)
const date1 = new Date(2018,0,2);
console.log(date1.toLocaleString()); //2018/1/2 0:00:00
// 2.年月日をセット(A-BのB)
const date2 = new Date(2017,11,31);
console.log(date2.toLocaleString()); //2017/12/31 0:00:00
// 3.getTimeメソッドで引き算(A-B)
const time1 = date1.getTime() - date2.getTime();
// 4.ミリ秒を日に変換
const day1 = Math.floor(time1 / (1000 * 60 * 60 * 24));
console.log(day1); //2
// 5.ミリ秒を時間に変換
const day2 = Math.floor(time1 / (1000 * 60 * 60 ));
console.log(day2); //48時間
</script>
4行目で、2018,0,2(設定する月は-1にする)をセットしてDateオブジェクトを作成します。
8行目で、2017,11,31(設定する月は-1にする)をセットしてDateオブジェクトを作成します。
12行目は、それぞれgetTime()メソッドを使用した値を引いて経過ミリ秒を求めます。
15行目は、ミリ秒を日に変換しています。floorメソッドは小数点以下を切り捨てます。
19行目は、ミリ秒を時間に変換しています。floorメソッドは小数点以下を切り捨てます。
以下はMDNのDateオブジェクトのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
関連の記事