Jump to content
  • 0

Два таймера на одной странице


dimox
 Share

Question

Здравствуйте. Переделывал под себя скрипт обратного отсчета времени, сделал то, что знал, дальше проблема - два скрипта с таймером не работают на одной странице. Идентификаторы и фнкции разные задавал, изменял названия файла - не помогает. Задавал другой идентификатор для другого таймера countdown-2, все равно не работает. Вот код:


<div align="center" id="countdown"></div>
<script src="js/countdown.js" type="text/javascript" language="javascript"></script>


var eventstr = "Распродажа закончилась!";
var countdownid = document.getElementById("countdown");

var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function CountDowndmn(yr,m,d){
cdyear=yr;
cdmonth=m;
cdday=d;
var today=new Date();
var todayy=today.getYear();
if (todayy < 1000)
todayy+=1900;
var todaym=today.getMonth();
var todayd=today.getDate();
var todayh=today.getHours();
var todaymin=today.getMinutes();
var todaysec=today.getSeconds();
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
futurestring=montharray[m-1]+" "+d+", "+yr
dd=Date.parse(futurestring)-Date.parse(todaystring);
dday=Math.floor(dd/(60*60*1000*24)*1);
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
if (dday < 10) dday = "0" + dday;
if (dhour < 10) dhour = "0" + dhour;
if (dmin < 10) dmin = "0" + dmin;
if (dsec < 10) dsec = "0" + dsec;
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1){
countdownid.innerHTML=eventstr;
return
}
else {
var lastchar = ""+dsec; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dsecstr = "";
if (lastchar=="1") { dsecstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dsecstr = ""; }

lastchar = ""+dmin; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dminstr = "";
if (lastchar=="1") { dminstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dminstr = ""; }

lastchar = ""+dhour; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dhourstr = "";
if (lastchar=="1") { dhourstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dhourstr = ""; }

lastchar = ""+dday; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var ddaystr = "";
if (lastchar=="1") { ddaystr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { ddaystr = ""; }

countdownid.innerHTML="0000·"+dday+ "" +ddaystr+"·"+dhour+""+dhourstr+"·"+dmin+""+dminstr+"·"+dsec+" "+dsecstr;
}
setTimeout("CountDowndmn(cdyear,cdmonth,cdday)",1000);
}

CountDowndmn(2013,7,29);

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

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

Edited by ОлегА
Link to comment
Share on other sites

  • 0


var eventstr = "Распродажа закончилась!";
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
function CountDowndmn(yr,m,d,id){
var countdownid = document.getElementById(id),
cdyear=yr,
cdmonth=m,
cdday=d,
today=new Date(),
todayy=today.getYear();
if (todayy < 1000)
todayy+=1900;
var todaym=today.getMonth();
var todayd=today.getDate();
var todayh=today.getHours();
var todaymin=today.getMinutes();
var todaysec=today.getSeconds();
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
var futurestring=montharray[m-1]+" "+d+", "+yr;
var dd=Date.parse(futurestring)-Date.parse(todaystring);
var dday=Math.floor(dd/(60*60*1000*24)*1);
var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
if (dday < 10) dday = "0" + dday;
if (dhour < 10) dhour = "0" + dhour;
if (dmin < 10) dmin = "0" + dmin;
if (dsec < 10) dsec = "0" + dsec;
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1){
countdownid.innerHTML=eventstr;
return
}
else {
var lastchar = ""+dsec; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dsecstr = "";
if (lastchar=="1") { dsecstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dsecstr = ""; }

lastchar = ""+dmin; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dminstr = "";
if (lastchar=="1") { dminstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dminstr = ""; }
lastchar = ""+dhour; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var dhourstr = "";
if (lastchar=="1") { dhourstr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dhourstr = ""; }
lastchar = ""+dday; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var ddaystr = "";
if (lastchar=="1") { ddaystr = ""; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { ddaystr = ""; }
countdownid.innerHTML="0000·"+dday+ "" +ddaystr+"·"+dhour+""+dhourstr+"·"+dmin+""+dminstr+"·"+dsec+" "+dsecstr;
}
setTimeout(function(){CountDowndmn(cdyear,cdmonth,cdday,id)} ,1000);
}
CountDowndmn(2013,7,30,"countdown");
CountDowndmn(2013,10,29,"c");


<div align="center" id="countdown"></div>
<hr style="width: 1000px; height: 10px">
<div align="center" id="c"></div>

так должно работать .....хоть десять

четвертый аргумент в CountDowndmn это айди элемента в виде строки

Edited by aleks_lv
Link to comment
Share on other sites

  • 0

Че-то у меня вчера гитхаб (jsfiddle то есть) и комп намертво завис с этими двумя таймерами =).... Да не, комп очень хороший, для современных игр подходит.

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Да, теперь работает. А интересует такой вопрос: этот таймер отсчитывает время до 23:59:59 заданного дня, т.е. в скрипте задаешь конкретный день, а как сделать, чтобы можно было задавать определенное время, например до 19:00 определенного дня?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy