javaScriptで時間を扱う方法についてまとめていこうと思います。
#取得方法
現在時間を取得したい時は new Date()を使います。
main.js
let d = new Date();
console.log(d) // Tue Feb 23 2021 21:56:22 GMT+0900 (日本標準時)
さらにgetTime()を使うと基準時間からの経過ミリ秒で時間を取得できます。
main.js
let d = new Date();
console.log(d.getTime()) // 1614085014353
###基準時間とは
協定世界時(UTC)1970年1月1日00:00:00からの経過時間を表すDateオブジェクトのミリ秒単位
そしてnew Date()は現在時刻だけではなく日付を指定することも可能
例 new Date(2012,4,3) → 2012-5-3 00:00:00.000
new Date(2021,1,11,11,30,10) → 2021-2-11 11:30:10.000
*月は0~11の範囲で指定 1月→0 5月→4
##日付情報の取得
main.js
let date = new Date(2021, 1, 11,11,30,10,776); //2021-2-11- 11:30:10.776を作成
date.getFullYear(); //2021 (年)
date.getMonth(); // 1 (月)
date.getDate(); // 11 (日)
date.getDay(); // 4 (曜)
date.getHours(); // 11 (時)
date.getMinutes(); // 30 (分)
date.getSeconds(); // 10 (秒)
date.getMilliseconds(); // 776 (ミリ秒)
*getDay()は曜日
日曜日は(0) ~ 土曜日は(6)で表示される
##時間の設定,変更
main.js
let date = new Date();
date.setFullYear(2021);
date.setMonth(1);
date.setDate(11);
date.setHours(11);
date.setMinutes(30);
date.setSeconds(10);
console.log(date); // Thu Feb 11 2021 11:30:10 GMT+0900 (日本標準時)
//あとから変更も可能
date.setDate(20);
date.setHours(8);
console.log(date); // Sat Feb 20 2021 08:30:10 GMT+0900 (日本標準時)
###YYYY/MM/DD HH:MM:SS 形式に変換
main.js
let date = new Date(2010, 2, 11, 11, 24, 30, 776);
console.log(date); // Thu Mar 11 2010 11:24:30 GMT+0900 (日本標準時)
var d1 = date.getFullYear() + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' +('0' + date.getDate()).slice(-2) + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2) + ':' + ('0' + date.getSeconds()).slice(-2) + '.' + date.getMilliseconds();
console.log(d1); // 2010/03/11 11:24:30.776
###経過時間の計算
main.js
let date1 = new Date(); //現在時刻 今回は2021/2/24 14:10:00.00
let date2 = new Date(2021, 0, 21,11,30,10); // 元の時間
let date3 = date1.getTime() - date2.getTime(); // 経過時間をミリ秒で取得
console.log(date3) // 2946590000
let sec = Math.floor(date3 / 1000 % 60);
let min = Math.floor(date3 / 1000 / 60 % 60);
let hour = Math.floor(date3 / 1000 / 60 / 60 % 24);
let day = Math.floor(date3 / 1000 / 60 / 60 / 24);
console.log(day); // 34
console.log(hour); // 2
console.log(min); // 29
console.log(sec); // 50
経過時間は 34日2時間29分50秒