Format duration

JavaScript, Date, Math, String · Oct 22, 2020

Returns the human-readable format of the given number of milliseconds.

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'

More like this

  • Number of seconds to ISO format

    Returns the ISO format of the given number of seconds.

    JavaScript, Date · Oct 13, 2021

  • String is ISO formatted date

    Checks if the given string is valid in the simplified extended ISO format (ISO 8601).

    JavaScript, Date · Nov 29, 2020

  • Add minutes to date

    Calculates the date of n minutes from the given date, returning its string representation.

    JavaScript, Date · Nov 28, 2020