5.1.8 • Published 2 years ago
@imranbarbhuiya/duration v5.1.8
Duration
A small and fast time utility which makes working with time, duration, date super easy. It contains a number of useful small utility methods to work with time and date.
Documentation
Read Full Documentation here.
Install
# npm
npm i @imranbarbhuiya/duration
# yarn
yarn add @imranbarbhuiya/duration
Usage
esm or Typescript
import {
parse,
format,
prettyFormat,
date,
relativeTime,
Formatter,
} from '@imranbarbhuiya/duration';
CommonJS
const {
parse,
format,
prettyFormat,
date,
relativeTime,
Formatter,
} = require('@imranbarbhuiya/duration');
parse
// string => number
parse('1s 1min 1h 1d 1w 1mo 1y'); // 34844461001
parse('2 days'); //=> 172800000
parse('1d'); //=> 86400000
parse('-3 days'); //=> -259200000
format
// number => string
format(2 * 60000); //=> 2m
format(-3 * 60000, { long: true }); //=> -3 minutes
format(parse('10 hours'), { long: true }); //=> 10 hours
prettyFormat
// number to string (multiple units)
prettyFormat(60000); //=> 1 minute
prettyFormat(121000); //=> 2 minutes, 1 second
prettyFormat(1000 * 60 * 60 * 60 * 24 * 30, { format: 'short' }); //=> 1mo
prettyFormat(86406010, {
format: 'short',
patterns: ['hour', 'minute', 'second', 'millisecond'],
separator: ' ',
}); //=> '24h 6s 10ms'
Writing these patterns every time is a pain. That's why there is a Formatter class which can be used to format multiple times without repeating yourself.
Formatter
const formatter = new Formatter({
format: 'short',
patterns: ['hour', 'minute', 'second', 'millisecond'],
separator: ' ',
});
formatter.format(1000 * 60 * 60 * 24 * 30); //=> 1mo
formatter.format(86406010); //=> '24h 6s 10ms'
date
// format a date
date('2022-01-01', 'YYYY-MMM-Do'); //=> 2022-Jan-Saturday
date('2022-01-01T00:00:00.000Z', 'yyyy-MM-D HH:mm:ss.SS Z'); //=> 2022-01-1 00:00:00.00 0
date('2022-01-01T00:00:00.000Z', 'yyyy-MMMM-DDD HH:mm:ss.SS'); //=> 2022-January-Sat 00:00:00.00
relativeTime
// format a date as relative date
relativeTime(Date.now() + 1000); //=> in a few seconds
relativeTime(Date.now() - 1000 * 60 * 60); //=> an hour ago
5.1.8
2 years ago
5.1.7
2 years ago
5.1.6
3 years ago
5.1.5
3 years ago
5.1.4
3 years ago
5.1.3
3 years ago
5.1.2
3 years ago
5.0.4
3 years ago
5.0.3
3 years ago
5.0.2
3 years ago
4.4.1
3 years ago
4.3.0
3 years ago
4.2.3
3 years ago
4.2.2
3 years ago
4.1.0
3 years ago
4.0.4
3 years ago
4.0.3
3 years ago
3.1.1
3 years ago
3.1.0
4 years ago
3.0.3
4 years ago
3.0.2
4 years ago
2.0.2
4 years ago
2.0.1
4 years ago
3.0.0
4 years ago
1.1.3
4 years ago
1.1.2
4 years ago
1.1.1
4 years ago
1.1.0
4 years ago
1.0.2
4 years ago