为了账号安全,请及时绑定邮箱和手机立即绑定

JS 如何像 Timer 一样减去时间(包括毫秒)

JS 如何像 Timer 一样减去时间(包括毫秒)

LEATH 2022-01-07 16:31:18
我是新来的,我正在尝试为自己编写一些代码。我在这段代码中有自己的“时钟”。然后我指定一个确切的时间。然后我想用毫秒减去我在实际时间(如计时器或倒计时)之前指定的确切时间。但我真的不知道怎么做。到目前为止,这是我的代码:<!DOCTYPE html><html><head><title>DSTimer</title></head><body><center><font face="Verdana" size="40">DS-Timer</font><br /></center><br /><br /><font size="+7" </font><p id="DS-Timer">getElementById</p><font size="-1" </font><p id="ABC"></p><font size="+1" </font>    <label class="h2" for="delay">Verbindungszeit zum Server</label>    <input type="number" name="Verbindungszeit zum Server" id="delay" maxlength="3">    <button onclick="addDelay()" type="submit">OK</button>    <p> <label for="Abschickzeitpunkt">Abschickzeitpunkt</label>    <input type="time" step="0.001" id="ABZ">    <button onclick="insert()" type="submit">OK</button></p>            <button type="reset">Eingaben zurücksetzen</button></form></body><script>var delay = 0;timer();function timer() {    var now = new Date();    var test = new Date(now.getTime() + delay),        h = test.getHours(),        m = test.getMinutes(),        s = test.getSeconds(),        ms = test.getMilliseconds();    m = zeroFill(m);    s = zeroFill(s);    ms = zeroFill(ms);    document.getElementById('DS-Timer').innerHTML = h + ':' + m + ':' + s + ':' + ms;    setTimeout(timer, 5);}function zeroFill(filler) {    filler = (filler < 10 ? '0' : '') + filler;    return filler;}function addDelay() {    var d = document.getElementById('delay').value;    delay = parseFloat(d);}function insert() {    var x = document.getElementById("ABZ").value    document.getElementById("ABC").innerHTML = x;  }    </script></html>```So I want to calculate "DS-Timer - ABC".
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以在大多数现代 Javascript 引擎中使用 Performance 接口。


let start = performance.now();

let timer = document.getElementById("timer");

for(let i = 0;i<5000;i++){

  timer.innerText = i;

}

let end = performance.now();

let elapsed = end - start;

timer.innerText += " that took "+elapsed+" ms"

<h1 id="timer"></h1>


查看完整回答
反对 回复 2022-01-07
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

这就是它的工作原理。:-)


var z = (document.getElementById("ABZ").value).split(':').join(',').split('.').join(',').split(',').join(',').split(',');

var y = new Date();

var generatedDate = new Date(y.getFullYear(), y.getMonth(),y.getDate(),z[0], z[1], z[2], z[3], z[4], z[5]);

var calculatedDate = generatedDate - y;

var h = Math.floor((calculatedDate % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

var m = Math.floor((calculatedDate % (1000 * 60 * 60)) / (1000 * 60));

var s = Math.floor((calculatedDate % (1000 * 60)) / 1000);

var ms = Math.floor((calculatedDate % 1000));

document.getElementById("COUNTDOWN").innerHTML = ( h + ':' + m + ':' + s + ':' + ms);```


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信