TypeScript
や JavaScript
で時間の差分を計算する方法をメモしておきます。ある時間( A )からある時間( B )までの時間の差分を時・分・秒に分割して取得します。
Angular
で開発するようになってからフロントサイドで時間の差分を計算する機会が増えてきたので。
実装方法
let t1 = new Date('2021-01-01 00:00:00');
let t2 = new Date('2021-02-01 00:30:50');
let diff = t2.getTime() - t1.getTime();
// 時間(Hour)部分の差分を取得
let diffHour = diff / (1000 * 60 * 60);
console.log(diffHour);
// 744
// 分(Minutes)部分の差分を取得
let diffMinute = (diffHour - Math.floor(diffHour)) * 60;
console.log(diffMinute);
// 30.83333333333485
// 秒(Seconds)部分の差分を取得
let diffSecond = (diffMinute - Math.floor(diffMinute)) * 60;
console.log(diffSecond);
// 50.00000000009095
秒部分の差分取得時に小数点表示されるのってもしかしてうるう秒ですかね?
まあ、秒の差分も整数部だけ取得しなおせば問題なさそうですね。
最後に
とりあえず、時間とか分の差分が欲しかったので実装してみましたが、もっと良い方法もありそうなので時間があればもうちょっと詳しく時間の差分取得について調べてみたいと思います。
コメント