1.0.4 • Published 6 years ago
@marchsabino/duration v1.0.4
Duration
Easily create and format durations.
Installation
npm i @marchsabino/durationor
yarn add @marchsabino/durationBasic Usage
import duration from "@marchsabino/duration";
// Print so that a human can read
duration(10).humanize(); // "10 seconds"
duration(10, "seconds").humanize(); // "10 seconds"
duration(121, "seconds").humanize(); // "2 minutes 1 second"
duration(2.5, "minutes").humanize(); // "2 minutes 30 seconds"
duration(1, "hours").humanize(); // 1 hour
duration(1.5, "days").humanize(); // 1 day 12 hours 0 minutes 0 seconds
// Print in a format of your choosing
console.log(duration(182).format("%m [minutes]")); // "3 minutes"
console.log(duration(67).format("%mm [minutes] and %ss [seconds]")); // "1 minute and 7 seconds"
console.log(duration(123).format("%hh:%mm:%ss")); // "00:02:03"API
duration(duration: number, interval?: string): Duration
Creates a new duration
Where duration is any number and interval is an optional string of any of the following values:
dayordayshourorhoursminuteorminutessecondorsecondsmillisecondormilliseconds
Note: if interval is not specified, it will default to seconds
Duration#format(format?: string)
Formats the duration to your specification
Formatting values:
%d- formats days "as is" e.g.123%hh- formats hours with leading 0's e.g.08%h- formats hours "as is" e.g.8%mm- formats minutes with leading 0's e.g.01%m- formats minutes "as is" e.g.4or23%ss- formats seconds with leading 0's e.g.03%s- formats seconds "as is" e.g.59%SSS- formats milliseconds with leading 0's e.g.009%SS- formats milliseconds with leading 0's e.g.01%S- formats milliseconds "as is" e.g.1,50, or999[days]- displays either "days" or "day" depending on days[hours]- displays either "hours" or "hour" depending on hours[minutes]- displays either "minutes" or "minute" depending on minutes[seconds]- displays either "seconds" or "second" depending on seconds
Sample Usage
import duration from "@marchsabino/duration";
console.log(duration(182).format("%m [minutes]")); // "3 minutes"
console.log(duration(67).format("%mm [minutes] and %ss [seconds]")); // "1 minute and 7 seconds"
console.log(duration(123).format("%hh:%mm:%ss")); // "00:02:03"Duration#humanize()
Formats the duration into an easily human-readable format.