setIntervalの秒数指定の場面など、ミリ秒で指定する場面は多いです。これをもう少しリーダブルにかけると嬉しいですよね?そこで今回は「time-f」というライブラリを作りました。
インストール方法
$ yarn add time-f
$ npm i --save time-f
使い方
const time = require('time-f'); setInterval(f, time('5sec')); setTimeout(f, time('5min 5sec'));
こんな感じでできます。リーダブルでいいですよね。
time()
はその時間を表すミリ秒をNumberで返します。time()
は3つまで数値を受け取れます。
time(5); // 5秒 = 5000 time(3, 0); // 3分 = 180000 time(1, 30, 0); // 1時間半 =5400000
また、秒、分、時間それぞれに個別の関数を用意しました。
time.sec(5); // 5秒 time.min(3); // 3分 time.hour(1); // 1時間
用途
jQueryの.animate()
のduration指定に使ったり、 日付計算にも使えます。
$('#box').animate({'left': '100px'}, time('5sec')); const today = new Date(); const tomorrow = new Date(today.getTime() + time('1day')); const yesterday = new Date(today.getTime() - time('1day')); const oneHourLater = new Date(today.getTime() + time('1hour')); const oneAndAHalfHoursLater = new Date(today.getTime() + time('1h 30m'));
日付計算でこの記法ができるとかなり可読性が高いですよね?
既存のライブラリとの比較
timestring
というライブラリが存在していたのですが、秒で返すことと、引数に数字を渡す形で使えませんでした。ミリ秒で返せるようですが、引数に一々"ms"
を渡さなければならず面倒です。デフォルトでミリ秒を返してほしいですよね。