Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2011, 10:14
Новичок на форуме
Отправить личное сообщение для ДимаЯл Посмотреть профиль Найти все сообщения от ДимаЯл
 
Регистрация: 23.12.2010
Сообщений: 5

таймер + cookie
Добрый день , уважаемые программисты и не программисты

Появилась нужда вставить на сайт таймер обратного отсчёта , скрипт с горем по полам нашёл , подкорректировал , всё работает , казалось бы всё, но не тут то было ! После каждого обновления страницы таймер начинает отсчёт с начала ! Немного покопавшись , понял что запоминает все эти дела cookie . Сколько не разбирался так и не понял как всё это дело сделать вместе ! Прошу помощи от хороших знающих людей , как это заставить работать с cookie

вот код таймера :

// Javascript starts
countdown4 = 20975;

// Converting date difference from seconds to actual time
function convert_to_time(secs)
{
	secs = parseInt(secs);	
	hh = secs / 3600;	
	hh = parseInt(hh);	
	mmt = secs - (hh * 3600);	
	mm = mmt / 60;	
	mm = parseInt(mm);	
	ss = mmt - (mm * 60);	
		
	if (hh > 23)	
	{	
	   dd = hh / 24;	
	   dd = parseInt(dd);	
	   hh = hh - (dd * 24);	
	} else { dd = 0; }	
		
	if (ss < 10) { ss = "0"+ss; }	
	if (mm < 10) { mm = "0"+mm; }	
	if (hh < 10) { hh = "0"+hh; }	
	if (dd == 0) { return (hh+":"+mm+":"+ss); }	
	else {	
		if (dd > 1) { return (dd+" day "+hh+":"+mm+":"+ss); }
		else { return (dd+" day "+hh+":"+mm+":"+ss); }
	}	
}

// Our function that will do the actual countdown
function do_cd4()
{
	if (countdown4 < 0)	
	{ 	
		
				// change text
		document.getElementById('cd4').innerHTML = "началось";
		
	}	
	else	
	{	
		document.getElementById('cd4').innerHTML = convert_to_time(countdown4);
		setTimeout('do_cd4()', 1000);
	}	
	countdown4 = countdown4 - 1;	
}

document.write("<div id='cd4'></div>\n");

do_cd4();
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2011, 10:45
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

у вас нет такого кода, который бы хоть пытался ставить куки.

// Javascript starts
countdown4 = 20975;

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

// Converting date difference from seconds to actual time


function convert_to_time(secs) {
    secs = parseInt(secs);
    hh = secs / 3600;
    hh = parseInt(hh);
    mmt = secs - (hh * 3600);
    mm = mmt / 60;
    mm = parseInt(mm);
    ss = mmt - (mm * 60);

    if (hh > 23) {
        dd = hh / 24;
        dd = parseInt(dd);
        hh = hh - (dd * 24);
    } else {
        dd = 0;
    }

    if (ss < 10) {
        ss = "0" + ss;
    }
    if (mm < 10) {
        mm = "0" + mm;
    }
    if (hh < 10) {
        hh = "0" + hh;
    }
    if (dd == 0) {
        return (hh + ":" + mm + ":" + ss);
    }
    else {
        if (dd > 1) {
            return (dd + " day " + hh + ":" + mm + ":" + ss);
        }
        else {
            return (dd + " day " + hh + ":" + mm + ":" + ss);
        }
    }
}
if(getCookie('countdown')){
    countdown4 = getCookie('countdown');
};

// Our function that will do the actual countdown
do_cd4 = function() {
    if (countdown4 < 0) {

        // change text
        document.getElementById('cd4').innerHTML = "началось";

    }
    else {
        document.getElementById('cd4').innerHTML = convert_to_time(countdown4);
        setTimeout('do_cd4()', 1000);
    }
    setCookie('countdown', countdown4, 3);
    countdown4 = countdown4 - 1;
}

document.write("<div id='cd4'></div>\n");
do_cd4();
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2011, 15:24
Новичок на форуме
Отправить личное сообщение для ДимаЯл Посмотреть профиль Найти все сообщения от ДимаЯл
 
Регистрация: 23.12.2010
Сообщений: 5

melky,

спасибо огромное за код всё работает , но есть одна загвоздка !

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение и удаление cookie в IE john-samilin Internet Explorer 4 07.07.2011 10:57
Выполнение скрипта раз в сутки по cookie Avel Mink Элементы интерфейса 16 29.04.2011 09:38
Как удолить cookie через javascript shtopor Javascript под браузер 5 22.03.2011 23:10
Корзина на JS с использованием COOKIE vah-smile Элементы интерфейса 3 05.03.2011 16:37
Как два раза вставить таймер alexvost Общие вопросы Javascript 2 08.02.2011 02:28