猿问

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

我是新来的,我正在尝试为自己编写一些代码。


我在这段代码中有自己的“时钟”。然后我指定一个确切的时间。


然后我想用毫秒减去我在实际时间(如计时器或倒计时)之前指定的确切时间。


但我真的不知道怎么做。


到目前为止,这是我的代码:


<!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".


LEATH
浏览 208回答 2
2回答

慕哥6287543

您可以在大多数现代 Javascript 引擎中使用 Performance 接口。let start = performance.now();let timer = document.getElementById("timer");for(let i = 0;i<5000;i++){&nbsp; timer.innerText = i;}let end = performance.now();let elapsed = end - start;timer.innerText += " that took "+elapsed+" ms"<h1 id="timer"></h1>

胡说叔叔

这就是它的工作原理。:-)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);```
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答