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

Related #js

Next.jsのPreview Mode時はAnalyticsを無効化する

cookieの__next_preview_dataキーで判定

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

jsでクリップボードにコピーするボタンを実装する

Clipboard.writeText()を使う

Cloud FunctionsでFirebase Authenticationの認証情報を取得する

functions.https.onCallを使用している場合はcontextパラメータを受け取ることができる

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

RaspberryPi ZeroにNode.jsの最新版をインストールする

vercel/install-nodeを使うと手軽にインストールできた