dayjsで秒数を時間表記に変換する
jsで秒数を表示する際に、YouTube動画のように「H:mm:ss」の形式で時間表記にしたかったので対応方法を調べた。
今回は日付操作ライブラリとしてdayjsを使用していたので、dayjsでの実現方法になる。
↓のissueで同じ質問がされており、コメントに対応方法が記載されていた。
今回の用途では24時間以上の秒数を扱うことはなかったので、issueのコメントを参考に↓のように実装した。
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
import utc from 'dayjs/plugin/utc'
dayjs.extend(utc)
dayjs.extend(duration)
let seconds = 12345
const currentTime = () => {
const sub = dayjs().subtract(seconds, 'seconds')
const duration = dayjs.duration(dayjs().diff(sub))
return dayjs.utc(duration.asMilliseconds()).format('H:mm:ss')
}
console.log(currentTime()) // => 3:25:45