簡體   English   中英

嘗試創建一個可重置自身的24小時計時器

[英]Trying to create a 24 hour timer that resets itself

這是我的代碼。 非常混亂,但是由於我的經驗不足,我無法檢測到為什么它不起作用。 根據我的說法,Decrements是js標准的,至少是毫秒,秒和分鍾,不確定小時數。

這是代碼。 提前致謝。

<!DOCTYPE html>
<html>
<body>

<span id="tHours"></span>:<span id="tMins"></span>:<span id="tSeconds"></span>:<span id="tMilli"></span>

<script>
    var hours = 1;
    var mins = hours * 60;
    var secs = mins * 60;
    var mill = secs * 100;
    var currentHours = 0;
    var currentSeconds = 0;
    var currentMinutes = 0;
    vas currentMilli = 0;
    setTimeout('DecrementMilli()',100);
    setTimeout('DecrementSeconds()',1000);
    setTimeout('DecrementMinutes()',10000);
    setTimeout('DecrementHours()',100000);

    function DecrementMilli() {
        currentMilli = secs % 100;
        if(currentMilli <= 99) currentMilli = "000" + currentMilli;
        secs--;
        document.getElementById("tMilli").innerHTML = currentMilli; 
        if(mill !== -1) setTimeout('Decrement()',100);
    }
        function DecrementSeconds() {
        currentSeconds = secs % 60;
        if(currentSeconds <= 9) currentSeconds = "0" + currentSeconds;
        secs--;
        document.getElementById("tSeconds").innerHTML = currentSeconds; 
        if(secs !== -1) setTimeout('Decrement()',1000);
    }
        function DecrementMinutes() {
        currentMinutes = Math.round(secs / 60);
        if(currentMinutes <= 60) currentMinutes = "00";
        mins--;
        document.getElementById("tMins").innerHTML = currentMinutes; 
        if(mins !== -1) setTimeout('Decrement()',10000);
    }
        function DecrementHours() {
        currentHours = Math.round(1440 / 60);
        if(currentHours <= 24) currentHours - 1;
        hours--;
        document.getElementById("tHours").innerHTML = currentHours; 
        if(hours !== -1) setTimeout('Decrement()',100000);
    }
</script>

</body>
</html>

您間隔的時間是錯誤的。 您可以嘗試下面的代碼。 只需將var放入您的html中,例如:

<span id='tHours'>23</span>:<span id='tMins'>59</span>:<span id='tSeconds'>59</span>:<span id='tMilli'>99</span>

和js一樣:

var milli = 99;
var sec = 59;
var min = 59;
var hour = 23;

setInterval(function () {
    milli = milli == 0 ? 99 : milli - 1;
    $('#tMilli').text(double0(milli));
},10);

setInterval(function () {
    sec = sec == 0 ? 59 : sec - 1;
    $('#tSec').text(double0(sec));
},1000);

setInterval(function () {
    min = min == 0 ? 59 : min - 1;
    $('#tMin').text(double0(min));
},60000);

setInterval(function () {
    hour = hour == 0 ? 23 : hour - 1;
    $('#tHour').text(double0(hour));
},1440000);

function double0 (num) {
    num = num.toString().length == 1 ? '0' + num : num;
    return num;
}

好吧,我解決了我自己的問題,但是它並不優雅,因為它不是從24:00:00開始,而是在23:59:59開始。 但這是一個開始。

我會在這里發布,以防任何人

<script type="text/javascript">
var count = 86400;
var counter = setInterval(timer, 1000);

function timer() {
    count = count - 1;
    if (count == -1) {
        clearInterval(counter);
        return;
    }

    var seconds = count % 60;
    var minutes = Math.floor(count / 60);
    var hours = Math.floor(minutes / 60);
    minutes %= 60;
    hours %= 60;

    document.getElementById("timer").innerHTML = hours + ":" + minutes + ":" + seconds; // watch for spelling
}
</script>



<span id='timer'></span>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM