Solucionado (ver solução)
Solucionado
(ver solução)
25
respostas

Converter segundos para horas ou minutos

Conforme visto em aula, tenho a seguinte função que pega o valor da tag span e faz um cronômetro decrescente, porém a função só é executado em valores em segundos (exemplo: 300, 299, 298...) gostaria de transformar estes em segundos para valores em h:m:i (ou seja, 5:00, 4:59, 4:58...), com qual função posso resolver este problema?



var botoes = $(".botoes");

var tempoRestante = $("#tempo-restante").text();
botoes.one("click", function(){
   var cronometroID = setInterval(function(){
       tempoRestante--;
       $("#tempo-restante").text(tempoRestante);
       if(tempoRestante < 1){
           clearInterval(cronometroID);
           window.location = 'home.html';
       }
   },1000);
});
25 respostas

Oi João tudo bem?

Para fazer isso incorpore essa função ao seu código

function formatahhmmss(s){
  function duas_casas(numero){
    if (numero <= 9){
      numero = "0"+numero;
    }
    return numero;
  }
  hora = duas_casas(Math.round(s/3600));
  minuto = duas_casas(Math.round((s%3600)/60));
  segundo = duas_casas((s%3600)%60);
  formatado = hora+":"+minuto+":"+segundo;

  return formatado;
}

Espero ter ajudado!!!!

Boa noite! Onde exatamente devo colocar essa nova função?

Antes de

var botoes = $(".botoes");

Se quiser me passa o código completo que ajeito para você o código.

Se você puder fazer isso ficarei imensamente grato, tentei aplicar como me disse, mas não deu certo. Abaixo segue o código:

HTML
 <main>
        <h2> Tempo de acesso restante: <span id="tempo-restante"> 30:00 </span> </h2>

        <nav class="botao-selecao"> 
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
        <li> <input type="button" name="botao" class="botoes"> </li>
               </ul>    
       </nav>
...

JS
function formatahhmmss(s){
  function duas_casas(numero){
    if (numero <= 9){
      numero = "0"+numero;
    }
    return numero;
  }
  hora = duas_casas(Math.round(s/3600));
  minuto = duas_casas(Math.round((s%3600)/60));
  segundo = duas_casas((s%3600)%60);
  formatado = hora+":"+minuto+":"+segundo;

  return formatado;
}
var botoes = $(".botoes");

var tempoRestante = $("#tempo-restante").text();
botoes.one("click", function(){
   var cronometroID = setInterval(function(){
       tempoRestante--;
       $("#tempo-restante").text(tempoRestante);
       if(tempoRestante < 1){
           clearInterval(cronometroID);
           window.location = 'home.php';
       }
   },1000);
});    

Aquela função que passei antes estava meio zuada, coloquei outra no código.

Dá uma olhada e veja se é o que precisa:

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none"> Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <input type="button" name="botao" class="botoes"> </li>
            </ul>
        </nav>
    </main>
    <script>
        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            var cronometroID = setInterval(function () {
                tempoRestante--;
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

Muito obrigado, André!!! O código só tem um bugzinho, quando muda o tempo la no html de 00:30:00 para qualquer outro valor seja por exemplo 1:30:00, ou 00:20:00, a contagem volta para os 00:30:00 minutos que foi definido inicialmente, tem como alterar este comportamento para que a contagem comece do valor passado la no html?

Opa, já achei o que fiz de errado aqui, tem que alterar o valor do 1800 e não o do 00:30:00. Muito obrigado, André! O código está funcionando perfeitamente!!!

André, abusando um pouco mais de seu conhecimento, você me falou em um outro tópico sobre o localStorage, para que o cronômetro não zerasse caso a página fosse atualizada, li sobre o artigo que você me passou, mas como não tenho muito conhecimento sobre o assunto acabei não compreendendo o que ele dizia. Será que você poderia me indicar alguma outra forma de fazer isso? Muito obrigado novamente!!!

Ah sim, eu lembro de ter falado. Um dia quando estudar bem entenderá tudo que irei falar e fará códigos melhores que os meus rsrsrs. No começo é difícil mas depois fica mais fácil.

Olha como ficaria o localStorage. O localStorage é tipo uma variável string que fica salvo na memória do navegador, ele só some se limpa o histórico. Acesso ele usando os métodos set e get como mostrado abaixo:

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <input type="button" name="botao" class="botoes"> </li>
            </ul>
        </nav>
    </main>
    <script>




        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            var cronometroID = setInterval(function () {
                tempoRestante--;
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

Tomara hahaha mas até lá, tenho que estudar muitooooo ainda kkkk. André, a contagem está começando em 23:59:55 e quando clica no botão ele já redireciona para a página inicial no segundo seguinte, como arrumar esse problema?

Vai ficar melhor que eu sim. Que tipo de professor eu seria se não desejasse o melhor para meus alunos.

Arrumei o código e coloquei um botãozinho de reset.

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 styleh="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <button onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>


      function reset(tempoInicial){

        localStorage.setItem("tempo-restante",tempoInicial);
        $("#tempo-restante").text(tempoInicial);
        $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
        return tempoRestante=tempoInicial;

      }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            var cronometroID = setInterval(function () {
                tempoRestante--;
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

É isso ai, professor! Agradeço muito pelas palavras de incentivo e também pela ajuda para solucionar este problema :D Só tem mais uma coisinha (desculpe-me pela insistência), o código está funcionando perfeitamente, mas ao clicar no segundo botão o tempo começa a decrescer mais rapidamente. Tem algum lugar que dá para colocar a função one do jQuery ou alguma outra propriedade para evitar que isso aconteça?

Eu não ligo de responder inúmeras perguntas, pra mim tudo isso é divertido.

É que quando você clica em qualquer dos dois primeiros botões você chama a função de contagem regressiva de novo. Então é como você estivesse acelerando o tempo em um segundo cada vez que clica no botão. Eu programei agora para quando clicar na primeira vez desabilitar o click do botão.

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <button onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>


        function reset(tempoInicial){

            localStorage.setItem("tempo-restante",tempoInicial);
            $("#tempo-restante").text(tempoInicial);
            $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
            return tempoRestante=tempoInicial;

        }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            botoes.one("click", "");
            var cronometroID = setInterval(function () {
                tempoRestante--;
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

Ainda continua com o mesmo comportamento, de ao clicar acelerar a contagem =/ onde exatamente altera a função para desabilitar este comportamento?

Nessa linha que altera o comportamento

  botoes.one("click", "");

É mesmo... tem dois botões. Desativei o segundo, só o primeiro vai funcionar como start.

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <input type="button" name="botao" class="botoes"> </li>
                <li> <input type="button" name="botao2" class="botoes2"> </li>
                <li> <button onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>


        function reset(tempoInicial){

            localStorage.setItem("tempo-restante",tempoInicial);
            $("#tempo-restante").text(tempoInicial);
            $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
            return tempoRestante=tempoInicial;

        }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            botoes.one("click", "");
            var cronometroID = setInterval(function () {
                tempoRestante--;
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

Criei um botão de start e outro de stop, dá uma olhada.

Acho que assim fica mais legal rsrsrs

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <button id="botaoStart" name="botao" class="botoes">Start</button> </li>
                <li> <button  name="botao2" onclick="freeze();"  class="botoes2">Stop</button> </li>
                <li> <button onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>

        localStorage.setItem("freeze","false");

        function freeze(){
            localStorage.setItem("freeze","true");


        }

        function play(){
            localStorage.setItem("freeze","false");


        }


        function reset(tempoInicial){

            localStorage.setItem("tempo-restante",tempoInicial);
            $("#tempo-restante").text(tempoInicial);
            $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
            return tempoRestante=tempoInicial;

        }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            botoes.one("click", "");
            document.getElementById("botaoStart").setAttribute("onclick","play();");
            var cronometroID = setInterval(function () {
                if (localStorage.getItem("freeze")=="false"){
                    tempoRestante--;
                }
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });    
    </script>
</body>


</html>

Perfeito, professor!! Muito obrigado mesmo pelo auxílio. Tenho só mais uma dúvida. Do jeito que está, é preciso clicar no botão para que a contagem seja iniciada correto?! Gostaria de saber se existe alguma forma de ao ser direcionado para a página do cronômetro ele começasse a regressiva (mesmo que não tenha sido feita nenhuma iteração com a página) e também se existe alguma maneira de manter a contagem, mesmo que não esteja na página específica do cronômetro? Agradeço a atenção!!!

Opaa, muito obrigado pelo plus hahahaha

solução!

Dinada,

Dá pra clicar no botão com javascript ao entrar na página. Assim:

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <button id="botaoStart" name="botao" class="botoes">Start</button> </li>
                <li> <button  name="botao2" onclick="freeze();"  class="botoes2">Stop</button> </li>
                <li> <button onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>

        localStorage.setItem("freeze","false");

        function freeze(){
            localStorage.setItem("freeze","true");


        }

        function play(){
            localStorage.setItem("freeze","false");


        }


        function reset(tempoInicial){

            localStorage.setItem("tempo-restante",tempoInicial);
            $("#tempo-restante").text(tempoInicial);
            $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
            return tempoRestante=tempoInicial;

        }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;
        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            botoes.one("click", "");
            document.getElementById("botaoStart").setAttribute("onclick","play();");
            var cronometroID = setInterval(function () {
                if (localStorage.getItem("freeze")=="false"){
                    tempoRestante--;
                }
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    window.location = 'home.php';
                }
            }, 1000);
        });

        document.getElementById("botaoStart").click();

    </script>
</body>


</html>

Para deixar o contador contando com a página fechada terá que trabalhar com datahora.

Guarde no localstorage a datahora atual cada vez que mudar o cronometro, e quando o usuario voltar pra pagina recupere a datahora atual e subtraia o valor armazenado no cronometro. Se tiver passado o tempo vá para a home.php

Tente fazer senão conseguir amanhã eu volto. Por hoje é só amanhã eu volto.

Tá certo, professor! Amanhã voltamos a nos falar, tenha uma boa noite e novamente, muito obrigado pelo auxílio. Abraços

Boa tarde, professor! Não consegui fazer como você instruiu, e além de tudo, agora o cronômetro voltou a dar aquele problema de iniciar a contagem em 23:59:55 e ao passar um segundo redirecionar para a página inicial. Já copiei e colei os códigos diversas vezes para tentar resolver o problema, mas toda vez que o localStorage é inserido na função, a contagem dura apenas um segundo. Poderia me ajudar, por gentileza?

Oi João boa tarde!!

Então no meu computador tá funcionando ok e não reinicia a contagem.

Tente recarregar a página usando ctrl+f5 para forçar limpar o cache dela e então aperte reset.

Resolvido! Muito obrigado, professor

Dinada, aqui está o código que fiz nessa última meia hora para caso o usuário troque de página e pense que assim parará a contagem.

<!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">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <title>Cronômetro</title>
</head>

<body>
    <main>
        <h2 style="display:none">Tempo de acesso restante: <span id="tempo-restante"> 1800</span> </h2>
        <h2> Tempo de acesso restante: <span id="tempo-restante-mostrador">00:30:00</span> </h2>

        <nav class="botao-selecao">
            <ul>
                <li> <button id="botaoStart" name="botao" class="botoes">Start</button> </li>
                <li> <button  name="botao2" onclick="freeze();"  class="botoes2">Stop</button> </li>
                <li> <button id="reset" onclick="reset(1800);">Reset</button> </li>
            </ul>
        </nav>
    </main>
    <script>

        localStorage.setItem("freeze","false");



        if ( document.getElementById("tempo-restante").innerText*1<=0){

            document.getElementById("reset").click();
            window.location = 'home.php';

        }


        function freeze(){
            localStorage.setItem("freeze","true");


        }

        function play(){
            localStorage.setItem("freeze","false");


        }


        function reset(tempoInicial){

            localStorage.setItem("tempo-restante",tempoInicial);
            $("#tempo-restante").text(tempoInicial);
            $("#tempo-restante-mostrador").text(formatahhmmss(tempoInicial));
            return tempoRestante=tempoInicial;

        }

        tempoRestante=localStorage.getItem("tempo-restante");

        if (tempoRestante=="" || tempoRestante==0 || tempoRestante==-1){
            tempoRestante=document.getElementById("tempo-restante").innerText*1;
        } else {
            tempoRestante=tempoRestante*1;
        }

        document.getElementById("tempo-restante").innerText=tempoRestante;


        var ultimoAno= localStorage.getItem("ultimoAno");
        var ultimoMes=localStorage.getItem("ultimoMes");
        var ultimoDia=localStorage.getItem("ultimoDia");
        var ultimoHora=localStorage.getItem("ultimoHora");
        var ultimoMinuto=localStorage.getItem("ultimoMinuto");
        var ultimoSegundo=localStorage.getItem("ultimoSegundo");

        var ultimaDataCalculo=new Date(ultimoAno,ultimoMes,ultimoDia,ultimoHora,ultimoMinuto,ultimoSegundo);
        var DataAtual = new Date();


        var quantoFalta=Math.round((DataAtual-ultimaDataCalculo)/1000);

        document.getElementById("tempo-restante").innerText=document.getElementById("tempo-restante").innerText*1-quantoFalta;



        document.getElementById("tempo-restante-mostrador").innerText=formatahhmmss(tempoRestante);



        function formatahhmmss(s) {
            var date = new Date(null);
            date.setSeconds(s); // specify value for SECONDS here
            return date.toISOString().substr(11, 8);
        }
        var botoes = $(".botoes");

        var tempoRestante = $("#tempo-restante").text()*1;
        botoes.one("click", function () {
            botoes.one("click", "");
            document.getElementById("botaoStart").setAttribute("onclick","play();");
            var cronometroID = setInterval(function () {
                if (localStorage.getItem("freeze")=="false"){
                    tempoRestante--;
                }
                $("#tempo-restante").text(tempoRestante);
                $("#tempo-restante-mostrador").text(formatahhmmss(tempoRestante));
                localStorage.setItem("tempo-restante",tempoRestante);
                var ultimaData = new Date();
                localStorage.setItem("ultimoAno",ultimaData.getFullYear());
                localStorage.setItem("ultimoMes",ultimaData.getMonth());
                localStorage.setItem("ultimoDia",ultimaData.getDate());
                localStorage.setItem("ultimoHora",ultimaData.getHours());
                localStorage.setItem("ultimoMinuto",ultimaData.getMinutes());
                localStorage.setItem("ultimoSegundo",ultimaData.getSeconds());
                if (tempoRestante < 1) {
                    clearInterval(cronometroID);
                    document.getElementById("reset").click();

                    window.location = 'home.php';
                }
            }, 1000);
        });

        document.getElementById("botaoStart").click();

    </script>
</body>


</html>

opaaaa, muito obrigado :D