ミリ秒をもっと楽に分かりやすく書く
Vercelが公開しているmsを使用することでより分かりやすくそしてより簡単に時間を指定することができます。 table:単位
単位 ms s m h d w y
説明 ミリ秒 秒 分 時 日 週 年
code:js
const ms = require('ms')
// ミリ秒で数値が返ってくる。
// 出力: 1000
console.log(ms('1s'))
// 10秒後に実行
setInterval(() => console.log('10秒後やぞ'), ms('10s'))
// 3分後に実行
setInterval(() => console.log('3分後やぞ'), ms('3m'))
// 1時間後に実行
setInterval(() => console.log('1時間後やぞ'), ms('1h'))
1yや1dを入れると一年後や一日後にも設定できる。
一週間なら1wと書くこともできる。
1分30秒後に実行したい場合は1.3mと書く
逆バージョン
ミリ秒を読みやすくする。(数値から文字列への変換)
code:js
const ms = require('ms')
// 出力: 1s
console.log(ms(1000))
// もっと分かりやすくしたい場合は long オプションを使おう!
// 出力: 1 second
console.log(ms(1000, { long: true }))
ただし1分30秒(1.3m)は内部で四捨五入されてしまうため1mと返ってくる。
逆バージョン・応用編
こんな場合に使えるかも?
数値は3だけど3分後に設定したい!
code:js
const ms = require('ms')
const threeMins = 3
// 出力: 60000
console.log(ms(threeMins + 'm'))
// ここでは m だが s や h と書き換えると一時間後に実行できたり一秒後に実行できる。
setTimeout(() => console.log('3分後!'), ms(threeMins + 'm'))
数値は秒単位だけど分単位にして表示したい!
code:js
const ms = require('ms')
// 10分(秒単位)
const tenMins = 600
// 出力: 10m
console.log(ms(ms(tenMins + 's')))