Skip to content

Instantly share code, notes, and snippets.

@zourdyzou
Created December 7, 2021 03:37
Show Gist options
  • Save zourdyzou/09097d031545c38d355298e010727e75 to your computer and use it in GitHub Desktop.
Save zourdyzou/09097d031545c38d355298e010727e75 to your computer and use it in GitHub Desktop.
formatting a duration (in millisecond) to human readable format using javascript
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(', ');
};
// example
formatDuration(1001); // '1 second, 1 millisecond'
formatDuration(34325055574);
// '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment