Converting millis to a human-readable string is a pain. It doesn't have to be.
You might want to check out the ms package. There are two main differences:
- It can convert a string to millis
- It can't display more than one unit, i.e.
3,660,000
ms would be converted to one hour, not one hour and one minute.
Note: play around with it on Runkit!
It's always best to use a specific version - you'll find the CDN URLs here.
<script src="https://cdn.jsdelivr.net/ms-util/latest/ms-util.min.js" type="application/javascript"></script>
<!-- It is now available as window.parseMs -->
const parseMs = require('ms-util');
Parse the given millis and return the number of days, hours, minutes seconds and ms they translate to.
console.log(parseMs.parse(86407049));
{
"days": 1,
"hours": 0,
"minutes": 0,
"seconds": 7,
"millis": 49,
"input": 86407049
}
Parse the given millis to a word string, e.g. 3660000 ms would become 01hr 01min 00sec by default.
Function signature:
parseMs.toWords = (ms, cfg = {}) => {};
Where ms
is the millis you want to convert and cfg is configuration with the following keys:
- pad: Whether to pad numbers with zeroes or not. Default:
true
. - forceMS: Force displaying millis even if
ms
is >=1000
. Default:false
. - lang: Language pack override. The default is:
{
"ms": "ms",
"sec": "sec",
"min": "min",
"hour": "hr",
"day": "d"
}
Usage:
console.log(parseMs.toWords(86407049)); // 1d 00hr 00min 07sec
Parse the given millis to a colon-separated string, e.g. 3660000 ms would become 01:01:00 by default
Function signature:
parseMs.colonSeparated = (ms, cfg = {}) => {};
Where ms
is the millis you want to convert and cfg is configuration with the following keys:
- pad: Whether to pad numbers with zeroes or not. Default:
true
. - forceMS: Force displaying millis even if
ms
is >=1000
. Default:false
.
Usage:
console.log(parseMs.colonSeparated(86407049)); // 1:00:00:07