Returns the human-readable format of the given number of milliseconds.
ms
with the appropriate values to obtain the appropriate values for day
, hour
, minute
, second
and millisecond
.Object.entries()
with Array.prototype.filter()
to keep only non-zero values.Array.prototype.map()
to create the string for each value, pluralizing appropriately.String.prototype.join()
to combine the values into a string.const formatDuration = ms => {
if (ms < 0) ms = -ms;
const time = {
day: Math.floor(ms / 86400000),
hour: Math.floor(ms / 3600000) % 24,
minute: Math.floor(ms / 60000) % 60,
second: Math.floor(ms / 1000) % 60,
millisecond: Math.floor(ms) % 1000
};
return Object.entries(time)
.filter(val => val[1] !== 0)
.map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`)
.join(', ');
};
formatDuration(1001); // '1 second, 1 millisecond'
formatDuration(34325055574);
// '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'
JavaScript, Date
Returns the ISO format of the given number of seconds.
JavaScript, Date
Checks if the given string is valid in the simplified extended ISO format (ISO 8601).
JavaScript, Date
Converts a date to extended ISO format (ISO 8601), including timezone offset.