Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Таймер обратного отсчета времени. Зацикленный (https://javascript.ru/forum/dom-window/54426-tajjmer-obratnogo-otscheta-vremeni-zaciklennyjj.html)

stanislav_lisitsin 17.03.2015 00:23

Таймер обратного отсчета времени. Зацикленный
 
Добрый день! есть скрипт, помогите зациклить, т.е. когда заканчивается, нужно заново продлить.
вот код
(function ($) {
"use strict";
$('.countdown').downCount({
date: '03/19/2015 18:40:00' // m/d/y
, daysplus: 1 //ставим null если не нужно сдвигать счетчик
});

})(jQuery);

(function (e) {
e.fn.downCount = function (t, n) {

var installedDate = e.extend({date: null, offset: null}, t);
var i = this;
if (!installedDate.date) {
e.error("Date is not defined.")
}
if (!Date.parse(installedDate.date)) {
e.error("Incorrect date format, it should look like this, 12/31/2015 12:00:00 day/month/year")
}
function o() {
var dateEnd = new Date(installedDate.date); // конец даты
var pluseDate = installedDate.daysplus * 60 * 60 * 24 * 1000 ; //время на которое нужно продлить
var currentDate = currentDateFunction(); // текущее время
var different = dateEnd - currentDate; //разница между концом и текущей датой


if (different < 0) {
var newDateEnd = (dateEnd.getTime() + pluseDate);

different = newDateEnd - currentDate;

if (different < 0) {
clearInterval(u);
if (n && typeof n === "function")n();
return
}
}

var a = 1000,
f = a * 60,
l = f * 60,
c = l * 24;

var h = Math.floor(different / c),
p = Math.floor(different % c / l),
d = Math.floor(different % l / f),
v = Math.floor(different % f / a);

h = String(h).length >= 2 ? h : "0" + h;
p = String(p).length >= 2 ? p : "0" + p;
d = String(d).length >= 2 ? d : "0" + d;
v = String(v).length >= 2 ? v : "0" + v;

var m = h === 1 ? "day" : "дней",
g = p === 1 ? "hour" : "часов",
y = d === 1 ? "minute" : "минут",
b = v === 1 ? "second" : "секунд";

i.find(".days").text(h);
i.find(".hours").text(p);
i.find(".minutes").text(d);
i.find(".seconds").text(v);
i.find(".days_ref").text(m);
i.find(".hours_ref").text(g);
i.find(".minutes_ref").text(y);
i.find(".seconds_ref").text(b)
}

function currentDateFunction () {
var date = new Date;
time = date.getTime() + date.getTimezoneOffset();
return time
}


var u = setInterval(o, 1000)
}
})(jQuery);

Спасибо.


Часовой пояс GMT +3, время: 00:32.