1.0.1 • Published 7 years ago

duration-pattern v1.0.1

Weekly downloads
26
License
MIT
Repository
-
Last release
7 years ago

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, in format total number of x (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 and parse is d 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 from node_modules (and node_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=).