JSFiddle - React, Tailwind, and code Playground

by Vasil Svetoslavov

HTML

<div>

<div id="result">
  <button onclick="test()">
  <em>T</em>est
  </button>
</div>

</div>

JavaScript

function test() {
var num = 7654;
showDuration(num);
var v2 = showHours(num) + showMinutes(num) + showSeconds(num);
console.log(v2);
}

function div(a, b) {
	return (a - (a % b))/b;
}

function mod(a, b) {
	return a % b;
}

/* function showDuration(seconds) {
  var s = '';
  var h, m, s = 0;
  
  if (seconds > 3600) {
    h = Math.floor(seconds / 3600);
    var tmp = seconds % 3600;
    m = tmp / 60;
    s = tmp % 60;
    console.log('' + h + ' h ' + m + ' min ' + s + ' sec');
  } else if (seconds > 60) {
    m = Math.floor(seconds / 60;
    s = seconds % 60;
    console.log('' + m + ' min ' + s + ' sec');
  } else {
    s = seconds;
    console.log('' + s + ' sec');
  }

} */
function showDuration(seconds) {
  var h, m, s = 0;
  
  if (seconds > 3600) {
    h = div (seconds, 3600);
    var tmp = mod(seconds,3600);
    m = div(tmp, 60);
    s = mod(tmp, 60);
    console.log('' + h + 'h ' + m + 'm ' + s + 's');
  } else if (seconds > 60) {
    m = div(seconds, 60);
    s = mod(seconds, 60);
    console.log('' + m + ' min ' + s + ' sec');
  } else {
  	s = seconds;
    console.log('' + s + ' sec');
  }
}

function showHours(seconds) {
	if (seconds < 3600) {
  	return '';
  }
  
  var hrs = div(seconds, 3600);
  var timeUnit = hrs == 1 ? 'hour' : 'hours';
  return '' + hrs + ' ' + timeUnit + ' ';
}

function showMinutes(seconds) {
	if (seconds < 60) {
  	return '';
  }

	var tmp = seconds;
	if (tmp > 3600) {
  	tmp = mod(tmp, 3600);
  }
  
  var mins = div(tmp, 60);
  if (mins != 0) {
  	var timeUnit = mins == 1 ? 'minute' : 'minutes';
	  return '' + mins + ' ' + timeUnit + ' ';
  }
  
  return '';
}

function showSeconds(seconds) {
	var isMoreThanMinute = seconds >= 60;
	var secs = mod(seconds, 60);
  if (secs != 0) {
  	var timeUnit = secs == 1 ? 'second' : 'seconds';
    var prefix = isMoreThanMinute ? 'and ' : '';
  	return prefix + secs + ' ' + timeUnit;
  }
	
}