codevise/pageflow

View on GitHub
entry_types/scrolled/package/src/frontend/PlayerControls/formatTime.js

Summary

Maintainability
B
5 hrs
Test Coverage
const unknownTimePlaceholder = '-:--';

export function formatTime(value) {
  if (isNaN(value)) {
    return unknownTimePlaceholder;
  }

  const seconds = Math.floor(value) % 60;
  const minutes = Math.floor(value / 60) % 60;
  const hours = Math.floor(value / 60 / 60);

  if (hours > 0) {
    return `${hours}:${pad(minutes)}:${pad(seconds)}`;
  }
  else {
    return `${minutes}:${pad(seconds)}`;
  }
}

function pad(value) {
  return value < 10 ? ('0' + value) : value;
}