I found how to make a clock with milliseconds in javascript (Jquery)(see snippet) but I can't figure out how to make a chronometer in milliseconds only. I tried to make a loop adding 1000 to the value of "milli" but my condition never works completely
// START CLOCK SCRIPT
Number.prototype.pad = function(n) {
for (var r = this.toString(); r.length < n; r = 0 + r);
return r;
};
function updateClock() {
var now = new Date();
var milli = now.getMilliseconds(),
sec = now.getSeconds(),
min = now.getMinutes(),
hou = now.getHours(),
mo = now.getMonth(),
dy = now.getDate(),
yr = now.getFullYear();
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var tags = ["mon", "d", "y", "h", "m", "s", "mi"],
corr = [months[mo], dy, yr, hou.pad(2), min.pad(2), sec.pad(2), milli];
for (var i = 0; i < tags.length; i++)
document.getElementById(tags[i]).firstChild.nodeValue = corr[i];
}
function initClock() {
updateClock();
window.setInterval("updateClock()", 1);
}
// END CLOCK SCRIPT
body {background-color:#666;}
#timedate {
font: small-caps bold 43px/150% Arial, Helvetica, sans-serif;
text-align:left;
width: 50%;
margin: 20px auto;
color:#333;
border-left: 20px solid yellow;
padding: 20px;
}
<body onLoad="initClock()">
<div id="timedate">
<a id="mon">January</a>
<a id="d">1</a>,
<a id="y">0</a><br />
<a id="h">12</a> :
<a id="m">00</a>:
<a id="s">00</a>:
<a id="mi">000</a>
</div>
You can use the getTime
function in Date API, it returns milliseconds number after 1970/01/01.
function updateClock(initTime) {
var now = new Date();
var milli = now.getTime() - initTime;
document.getElementById('timedate').innerHTML = milli;
}
function initClock() {
var initTime = new Date().getTime();
updateClock();
window.setInterval(updateClock, 1, initTime);
}