таймер + 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(); |
у вас нет такого кода, который бы хоть пытался ставить куки.
// 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(); |
melky,
спасибо огромное за код всё работает , но есть одна загвоздка ! но вот только работает он у каждого по своему . хотелось бы чтобы скрипт работал относительно какого то времени , т.е . зависил от серверного времени , ну или просто хотя бы от московского |
Часовой пояс GMT +3, время: 04:59. |