Код таймера обратного отсчета JavaScript [JS]

В настоящее время я пытаюсь заставить работать таймер обратного отсчета, но я вообще не знаю JavaScript.

<script>
$(document).ready(function (e) {
    var $timer = $("#timer");

    function update() {
        var myTime = $timer.html();
        var ss = myTime.split(":");
        var dt = new Date();
        dt.setHours(0);
        dt.setMinutes(ss[0]);
        dt.setSeconds(ss[1]);

        var dt2 = new Date(dt.valueOf() - 1000);
        var temp = dt2.toTimeString().split(" ");
        var ts = temp[0].split(":");

        $timer.html(ts[1]+":"+ts[2]);
        setTimeout(update, 1000);
    }

    setTimeout(update, 1000);
});
</script>

Но я наткнулся на проблему. Поэтому я хочу, чтобы это прекратилось в 00:00, но оно продолжается. Кроме того, за 2 минуты до конца времени я хочу, чтобы он выполнил некоторый код.

В оставшееся время (00:00) я хочу, чтобы он просто перенаправлял на страницу, а через 2 минуты я хочу, чтобы он запускал какой-то пользовательский код (который у меня есть).

Но я понятия не имею, как заставить его работать за один раз и заставить его остановиться за один раз.

Кто-нибудь может мне с этим помочь?

2 ответа

Решение

Пытаться

    $timer.html(ts[1]+":"+ts[2]);

         if((ts[1]==="02") &&(ts[2]==="00")){
              //custom code at 02:00
           }

         if((ts[1]==="00") &&(ts[2]==="00")){
              //Make the redirect
          }
         else{ 
              setTimeout(update, 1000);
             }

DEMO

Внутренняя функция должна быть частью анонимной функции. Прямо сейчас update()не может быть вызван, потому что вы используете setTimeout() -> update() должен быть на том же уровне, что и ваша анонимная функция.

Другие вопросы по тегам