Обратный отсчет сбрасывается, если я перезагрузить страницу - нужно установить его до некоторой даты

У меня есть скрипт обратного отсчета, который запускается заново, если я перезагружаю страницу. Мне нужно, чтобы это работало до какой-то даты.

Вот ссылка для просмотра таймера обратного отсчета, а также вы можете скачать и использовать его или посмотреть коды: https://timer.craftovdvlp.club/

А вот и скрипт:

$(document).ready(function() {

  $('#countdown2').ClassyCountdown({
    end: '1388468325',
    now: '1378441323',
    labels: true,
    style: {
      element: "",
      textResponsive: .5,
      days: {
        gauge: {
          thickness: .01,
          bgColor: "rgba(0,0,0,0.05)",
          fgColor: "#1abc9c"
        },
        textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;'
      },
      hours: {
        gauge: {
          thickness: .01,
          bgColor: "rgba(0,0,0,0.05)",
          fgColor: "#2980b9"
        },
        textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;'
      },
      minutes: {
        gauge: {
          thickness: .01,
          bgColor: "rgba(0,0,0,0.05)",
          fgColor: "#8e44ad"
        },
        textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;'
      },
      seconds: {
        gauge: {
          thickness: .01,
          bgColor: "rgba(0,0,0,0.05)",
          fgColor: "#f39c12"
        },
        textCSS: 'font-family:\'Open Sans\'; font-size:25px; font-weight:300; color:#34495e;'
      }

    },
    onEndCallback: function() {
      console.log("Time out!");
    }
  });

});
<link href="http://timer.craftovdvlp.club/css/jquery.classycountdown.css" rel="stylesheet" />
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://timer.craftovdvlp.club/js/jquery.classycountdown.js"></script>

<script src="http://timer.craftovdvlp.club/js/jquery.knob.js"></script>
<script src="http://timer.craftovdvlp.club/js/jquery.throttle.js"></script>

<div class="container">

  <div id="countdown2" class="ClassyCountdownDemo"></div>

</div>

PS если у кого есть или знаете ссылку на красивую линию кругового таймера обратного отсчета, буду очень благодарен за помощь)

2 ответа

Получите текущую временную переменную, вот так:

$(document).ready(function() {
    var d = new Date();
    var now = d.getTime();

    $('#countdown2').ClassyCountdown({
        end: '1388468325',
        now: now,
        ....
    });
});

Всякий раз, когда вы перезагрузите страницу, память будет сброшена. Попробуйте использовать что-то постоянное, например, cookie, в котором хранится дата окончания таймера.

now также следует создавать каждый раз, когда вы перезагружаете страницу, как указано в ответе @Himanshu Upadhyay и в комментарии @Santi.

IE

var end = document.cookie.replace(/(?:(?:^|.*;\s*)timerEnd\s*\=\s*([^;]*).*$)|^.*$/, "$1");
end = end || '' + Date.now() + 15 * 60 * 1000; // 15 minutes
document.cookie='timerEnd=' end;
$('#countdown2').ClassyCountdown({
    end: end,
    now: '' + Date.now(),
    // ...etc
Другие вопросы по тегам