goofy timer

goofy timer

by thomas_david88

HTML

<div id=time></div>
<div id=milli></div>

JavaScript

$(function() {
  var timer, idle = false
  $(window).on({
    blur: pause,
    focus: somethingHappened
  })

  $(document).on({
    mousemove: somethingHappened,
    click: somethingHappened,
    touchstart: somethingHappened
  })

  var start = new Date,
    bad = 0
  adjust('24:00:00')
console.log(start);
  somethingHappened()
  setInterval(function() {
    $("#time").text(formatMilli( new Date-start - bad))
    $("#milli").text(seconds($("#time").text()))
    if (idle) bad += 1000
  }, 1000)
function seconds(s){
	const t=s.split(":").map(Number)
  return( t[0]*60+t[1])*60+t[2]
}
  function adjust(time) {
    const t = time.split(/:/).map(Number).reverse()
    if (t[0]) start.setSeconds(start.getSeconds() - t[0]);
    if (t[1]) start.setMinutes(start.getMinutes() - t[1]);
    if (t[2]) start.setHours(start.getHours() - t[2]);
    console.log(t)
  }

  function pause() {
    idle = true
  }

  function somethingHappened() {
    idle = false
    clearTimeout(timer)
    timer = setTimeout(function() {
      idle = true
    }, 5000)
  }

})


function formatMilli(milli) { //0:00:05 
  aDate = new Date;
  aDate.setHours(0);
  aDate.setMinutes(0);
  aDate.setSeconds(0);
  aDate.setMilliseconds(milli);

  return aDate.toLocaleTimeString("en-gb", {
    hour: "numeric",
    minute: "2-digit",
    second: "2-digit"
  })

}