Skip to content

Instantly share code, notes, and snippets.

@clavisound
Forked from zourdyzou/formatDuration.js
Last active July 28, 2025 17:30
Show Gist options
  • Save clavisound/c53093d6b399e688a3287deeff4ed772 to your computer and use it in GitHub Desktop.
Save clavisound/c53093d6b399e688a3287deeff4ed772 to your computer and use it in GitHub Desktop.
formatting a duration (in millisecond) to human readable format using javascript
const formatDuration = s => {
if (s < 0) s = -s;
const time = {
day: Math.floor(s / 86400),
hour: Math.floor(s / 3600) % 24,
minute: Math.floor(s / 60) % 60,
second: Math.floor(s) % 60
};
return Object.entries(time)
.filter(val => val[1] !== 0)
.map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`)
.join(', ');
};
// example
formatDuration(1); // '1 second'
formatDuration(34325055); // '397 days, 6 hours, 44 minutes, 15 seconds'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment