Parse duration strings to milliseconds
npm install parse-duration-ms> Parse duration strings to milliseconds
Useful for parsing timeout values, cache TTLs, rate limits, and other duration-based configuration in a human-friendly format.
See pretty-ms for the inverse.
``sh`
npm install parse-duration-ms
`js
import parseDuration from 'parse-duration-ms';
parseDuration('1h');
//=> 3600000
parseDuration('90m');
//=> 5400000
parseDuration('2 days 5 hours 30 minutes');
//=> 192600000
parseDuration('1hr 30min');
//=> 5400000
parseDuration('500ms');
//=> 500
parseDuration('1.5 hours');
//=> 5400000
parseDuration('1h41m');
//=> 6060000
parseDuration('invalid');
//=> undefined
`
Parses a duration string to milliseconds.
Returns undefined if the input is invalid.
Throws a TypeError if the input is not a string.
#### input
Type: string
The duration string to parse.
Features:
- Multiple units: '1h 30m', '2d 5h 30m', '1 hour 30 minutes''1hr 30min'
- Shortened forms: , '90mins', '2w 3d''1.5h'
- Decimal values: , '0.5m', '1.5 hours''1h30m'
- With or without spaces: , '1h 30m', '1hour', '1 hour''1H'
- Case insensitive: , '30M', '1 HOUR''-1h'
- Negative values: , '-30m'
Supported units:
| Unit | Short | Shorter | Long (singular) | Long (plural) |
|------|-------|---------|-----------------|---------------|
| Nanoseconds | ns | nsec, nsecs | nanosecond | nanoseconds |ms
| Milliseconds | | msec, msecs | millisecond | milliseconds |s
| Seconds | | sec, secs | second | seconds |m
| Minutes | | min, mins | minute | minutes |h
| Hours | | hr, hrs | hour | hours |d
| Days | | - | day | days |w
| Weeks | | - | week | weeks |
Months and years aren't fixed durations. They vary (28-31 days for months, 365-366 for years). Any approximation would be silently wrong in many cases. Be explicit instead: use '30d' for ~1 month or '365d' for ~1 year.
This package parses combined units like '1h 30m' and '2 days 5 hours'. The ms` package does bidirectional conversion but doesn't support combined units.
No. This keeps the package simple and small.
No. This only parses relative durations (lengths of time), not absolute times.
- pretty-ms - Convert milliseconds to a human readable string
- to-milliseconds - Convert an object of time properties to milliseconds
- parse-ms - Parse milliseconds into an object