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"
})
}