• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Stoper dodanie zera kiedy jest liczba jedno cyfrowa

Object Storage Arubacloud
0 głosów
149 wizyt
pytanie zadane 27 grudnia 2019 w JavaScript przez Paweł123 Nałogowiec (33,500 p.)

Cześć, mam problem ze stoperem. Chciałbym zrobić, aby czas wyświetlała się tak 01:02:03:34

Jednak godzina czas wyświetla się tak 0:0:00000000000000001:15 

Czy ktoś wie jak to naprawić?

    <nav class="controls">
        <a href="#" class="button" id="#start" onclick="start();">START</a>
        <a href="#" class="button" id="#stop" onclick="stop();">STOP</a>
        <a href="#" class="button" id="#clear" onclick="reset();">CLEAR</a>
    </nav>


    <div id="#timer">0:0:0:0</div>



    <script>
        var hour = 0;
        var min = 0;
        var sec = 0;
        var miliSec = 0;
        var timer;

        function callTimer() {
            miliSec++;
            if (miliSec < 100) {
                if (miliSec === 99) {
                    miliSec = 0;
                    sec++;
                    if (sec === 60) {
                        sec = 0;
                        min++;
                        if (min === 60) {
                            min = 0;
                            hour++
                        }
                    }
                }
            } else {
                miliSec = 0;
            }
            /* Dodaje za kazdym razem
            if (sec < 10) {
                sec = "0" + sec;
            }else{
                sec;
            }
            */
            document.getElementById("#timer").innerHTML = hour + ":" + min + ":" + sec + ":" + miliSec;
        }


        function start() {
            document.getElementById("#start").disabled = true;
            timer = setInterval(callTimer, 10);
        }

        function stop() {
            document.getElementById("#start").disabled = false;
            clearInterval(timer);
        }

        function reset() {
            stop();
            hour = 0;
            min = 0;
            sec = 0;
            miliSec = 0;
            document.getElementById("#timer").innerHTML = hour + ":" + min + ":" + sec + ":" + miliSec;
        }

        if (miliSec < 10) miliSec = "0" + miliSec;
        if (sec < 10) sec = "0" + sec;

    </script>

 

1 odpowiedź

0 głosów
odpowiedź 29 grudnia 2019 przez antypop Mądrala (5,730 p.)

W złym miejscu wrzuciłeś te ify które dodają leadingzero. 

Kod:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
<nav class="controls">
    <a href="#" class="button" id="#start" onclick="start();">START</a>
    <a href="#" class="button" id="#stop" onclick="stop();">STOP</a>
    <a href="#" class="button" id="#clear" onclick="reset();">CLEAR</a>
</nav>
 
 
<div id="#timer">00 : 00 : 00 : 00</div>
 
 
 
<script>
    var hour = 0;
    var mins = 0;
    var sec = 0;
    var miliSec = 0;
    var timer;
 
    function callTimer() {
        miliSec++;
        if (miliSec < 100) {
            if (miliSec === 99) {
                miliSec = 0;
                sec++;
                if (sec === 60) {
                    sec = 0;
                    mins++;
                    if (mins === 60) {
                        mins = 0;
                        hour++
                    }
                }
            }
        } else {
            miliSec = 0;
        }
        /* Dodaje za kazdym razem
        if (sec < 10) {
            sec = "0" + sec;
        }else{
            sec;
        }
        */
        document.getElementById("#timer").innerHTML = `${(hour < 10) ? "0" + hour : hour} : ${(mins < 10) ? "0" + mins : mins } : ${(sec < 10) ? "0" + sec : sec } : ${(miliSec < 10) ? "0" + miliSec : miliSec }`
        
    }
 
 
    function start() {
        document.getElementById("#start").disabled = true;
        timer = setInterval(callTimer, 10);
    }
 
    function stop() {
        document.getElementById("#start").disabled = false;
        clearInterval(timer);
    }
 
    function reset() {
        stop();
        hour = 0;
        min = 0;
        sec = 0;
        miliSec = 0;
        document.getElementById("#timer").innerHTML = hour + ":" + min + ":" + sec + ":" + miliSec;
    }
 
 
</script>


</body>
</html>

Poprawki w liniach:

18 // kosmetyka

24 //zmiana nazwy zmiennej z min na mins (głupio to brzmi).

54 // string z zaszytymi ifami dodającymi 0

między 77 a 17 // usunąłem poprzednie ify.

Napisz czy o to Ci chodziło.

Podobne pytania

0 głosów
2 odpowiedzi 453 wizyt
0 głosów
2 odpowiedzi 423 wizyt
+1 głos
1 odpowiedź 245 wizyt
pytanie zadane 20 stycznia 2021 w C i C++ przez MateuszFisch Początkujący (250 p.)

92,687 zapytań

141,598 odpowiedzi

320,087 komentarzy

62,048 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...