2015-04-18 2 views
0

все! На веб-сайте я использую this timer, но я не понимаю, что мне нужно делать, когда он заканчивается. Когда таймер заканчивается, он должен перезапустить в течение следующих 14 дней. Вы можете посоветовать некоторые книги, где я могу прочитать о своей проблеме или просто абзаце Date() в js. Спасибо!Как восстановить таймер, когда он заканчивается?

ответ

1

Существует обратного вызова вариант для этого плагина, который называется как только вы таймер концов:

$('#countdown').timeTo({ 
    timeTo: new Date(new Date('Sat Apr 25 2015 09:00:00 GMT+0200')), 
    displayDays: 2, 
    theme: "black", 
    displayCaptions: true, 
    fontSize: 48, 
    captionSize: 14, 
    // important part 
    callback: function(){ 
     alert('Timer ended'); 
    } 
}); 

Если вы хотите, чтобы следить за пользователем в exprieing время localStorage -API могут быть использованы для выполнения это.

Начало истекающего Таймер:

сделать функцию, чтобы следить за истекающий даты пользователя с помощью функции localStorage.This возвращает начальную дату, когда пользователь посетил ваш сайт самый первый раз. Эта дата используется для определения того, является ли пользователь уже продлевал истекает время 14 дней, но дальнейшие подробности приведены ниже:

function handleUserDate(expireInDays){ 

    var now = new Date(); 
    var startDate = localStorage.getItem('timerStartDate'); 

    // has user already visited your site? 
    if(startDate){ 

    // is user'date expired? 
    startDate = new Date(Number(startDate)); 
    var futureDate = new Date(startDate.getTime()+expireInDays*(1000*60*60*24)); 
    if(now.getTime() < futureDate.getTime()){ 
     console.log('in future'); 
     return startDate; 
    } 

    } 
    console.log('in past'); 
    localStorage.setItem('timerStartDate', now.getTime()); 
    return now; 

} 

Следующая функция используется для активации таймера и ввод количества дней, которые остались в TimeTo вариант:

function startTimer(inDays){ 

    var now = new Date(); 
    var futureDate = new Date(now.getTime()+inDays*(1000*60*60*24)); 
    console.log(futureDate); 

    $('#countdown').timeTo({ 
     timeTo: futureDate, 
     displayDays: 2, 
     theme: "black", 
     displayCaptions: true, 
     fontSize: 48, 
     captionSize: 14, 
     callback: function(){ 
      alert('Timer ended'); 
      var daysInFuture = 14; 
      startTimer(daysInFuture); 
     } 
    }); 
} 

Функция для вычисления разницы во времени в днях между датой начала и теперь:

function getTimeDiff(date, date2, diff){ 
    return Math.abs(date.getTime()-date2.getTime())/diff; 
} 

Соберем все вместе:

var expireinDays = 14;// 14 day max 

var startDate = handleUserDate(expireinDays); 
console.log(startDate);// returns date of the very first time or when already expired it returns current date 
var now = new Date(); 
var dayInMill = 1000*60*60*24; 

var dayDifference = getTimeDiff(startDate,now,dayInMill); 
dayDifference = expireinDays - dayDifference; 
console.log(dayDifference); // days left 

startTimer(dayDifference); // show timer 
+0

когда я использую свой код таймер does't виден, он просто скрыть –

+0

это переинициализации каждый раз я перезагрузить страницу –

+0

вы не сказали, что вы хотите целый решение, но я надеюсь, это поможет вам :) – Blauharley

Смежные вопросы