duration-pattern
Format/parse time durations using string patterns in nodejs or browser. Time duration is simply a number of milliseconds, it has no start or end.
Usage:
duration([[[[numd], numH], numm], nums], numS)
duration.format(num, [pattern=duration.format.pattern])
duration.parse(str, [pattern=duration.parse.pattern])
duration.parse.regex([pattern=duration.parse.pattern])
In pattern string:
- 'S': milliseconds;
- 's': seconds;
- 'm': minutes;
- 'H': hours;
- 'd': days;
- Two letters: two (three for SS) digits format (padded with zeros if needed);
- Three letters: in
parse
same as one, informat
total number ofx
(see examples); - 'ddd': same as 'd';
- More letters: same as one letter;
- Any letter can be escaped with
\
(then it gets replaced by just a letter); - Default pattern for
format
andparse
isd HH:mm:ss:SS
; - You can use the fact that in
parse
pattern string is converted to a regex.
Examples
duration.format(1032, 'S') //"32"
duration.format(1032, 'SS') //"032"
duration.format(1032, 'SSS') //"1032"
duration.format(1032, 'SSS \\m\\s = sss.SS \\s') //"1032 ms = 1.032 s"
duration.format(190988019, "ddd HH:mm:ss.SS") //"2 05:03:08.019"
duration.parse("2 05:03:08.019", "ddd HH:mm:ss.SS") //190988019
duration.parse.regex("ti\\me: mmm\' ss\"") // /time: (\d+)' (\d\d)"/g
See tests for more examples.
Installation
npm install duration-pattern
Advanced installation
That's a browser script so you probably want just the main .js
file without node_modules
.
This command will produce just a single file in the current working directory:
Linux:
_npm_postinstall_args=justmain npm i duration-pattern
Windows:
set _npm_postinstall_args=justmain & npm i duration-pattern
- The error after installing this way is ok. It's a trick in
postinstall.js
to make npm safely remove the module fromnode_modules
(andnode_modules
itself if it is empty). - Initial underscore in
_npm_postinstall_args
denotes not standard npm environment variable that is used by postinstall script. - On Windows
_npm_postinstall_args
won't be reset after installation, so if you want to install the module normally after installing it in advanced way you should restart the shell or clear_npm_postinstall_args
manually (set _npm_postinstall_args=
).