Остановился таймер
есть такой таймер
<div id="timer"> <div id="d" class="blueDigit" style="display:none;">00</div> <div id="h" class="blueDigit">00</div> <span>:</span> <div id="m" class="blueDigit">00</div> <span>:</span> <div id="s" class="redDigit">01</div> </div> <div class="timeWords" > <div id="ds" style="display:none;">дня</div> <div id="hs">часов</div> <div id="ms">минут</div> <div id="ss">секунд</div> </div> на днях вдруг перестал работать, а это не есть хорошо, тк на нескольких сайтах он стоит, кто может помочь исправить проблему? вот код document.getElementsByTagName("body")[0].onload=setTimer; function setTimer() { var maxDays = 3; var time = "00:00:00"; var now = new Date(); var date=now.getDate(); var year=now.getFullYear(); var month=now.getMonth()+1; if (month==12) month=0; switch(month) { case 0:month="January";break case 1:month="February";break case 2:month="March";break case 3:month="April";break case 4:month="May";break case 5:month="June";break case 6:month="July";break case 7:month="August";break case 8:month="September";break case 9:month="October";break case 10:month="November";break case 11:month="December";break } var daysReal=date%maxDays; var FullDate=year+","+month+",1"; var endOfTimer = new Date(FullDate);//05:00:00"); "Jun,12,2015,"+ var ms = (endOfTimer.getTime()-now.getTime()); daysReal= Math.floor(ms/(1000*60*60*24)); if (ms>1) { var sec=(parseInt(ms/1000)); var days=(parseInt(sec/(24*60*60))); var secInLastDay=sec-days*24*3600; var hours=(parseInt(secInLastDay/3600)); var secInLastHour=secInLastDay-hours*3600; var minutes=(parseInt(secInLastHour/60)); var lastSec=secInLastHour-minutes*60; document.getElementById('d').innerHTML = daysReal; document.getElementById('h').innerHTML = ((hours<10)?(hours="0"+hours): hours); document.getElementById('m').innerHTML = ((minutes<10)?(minutes="0"+minutes): minutes); document.getElementById('s').innerHTML = ((lastSec<10)?(lastSec="0"+lastSec): lastSec); var daysStr = "дня"; if(days==0 || days >= 5) daysStr = "дней"; else if(days==1)daysStr="день"; var hourStr = "часов"; if((hours>=2 && hours<=4) || hours>=22) hourStr="часа"; else if(hours==1 || hours==21) hourStr='час'; var minStr="минут"; if(minutes%10==1 && Math.floor(minutes/10)!=1) minStr="минута"; else if ((minutes%10>=2 && minutes%10<=4) && Math.floor(minutes/10)!=1) minStr="минуты"; var secStr ="секунд"; if(lastSec%10==1 && Math.floor(lastSec/10)!=1) secStr="секунда"; else if ((lastSec%10>=2 && lastSec%10<=4) && Math.floor(lastSec/10)!=1) secStr="секунды"; document.getElementById('ds').innerHTML = daysStr; document.getElementById('hs').innerHTML = hourStr; document.getElementById('ms').innerHTML = minStr; document.getElementById('ss').innerHTML = secStr; setTimeout(setTimer,1000) } } он каждый месяц должен рестарт делать... помогите професора!!!!! |
iskander83,
строка 12 скрипта подумай при каких условиях month может стать 12 и что случится тогда с year если думать совсем неохота job |
я так и думал что ошибка тут, но как исправить?
и еще была ошибка в скрипте строка 11 вместо "+0" надо "+1" уже исправил... но это делу не помогает... |
Цитата:
раз вы исправили в 11 строке, то нужно исправлять в switch-е... |
Цитата:
Цитата:
оба смотрите подсказку во 2 посте -- строка 11 исправлена строка 12 ещё нет ))) время пошло :dance: |
:write: Время то идет.. А скрипт так и не работает...:cray:
:help: :help: :help: |
а вот так то заработало!!!:victory:
var year=now.getFullYear()+1; 10я строка. Что скажете? |
iskander83, наверное(((
например, почему у вас переменная daysReal 2 раза устанавливается (27, 31 строки) проверьте что у вас записывается в переменную ms... |
скрипт то не я сам писал поэтому хз...:blink:
"проверьте что у вас записывается в переменную ms..." не умею, но факт что все вроде работает теперь.... |
только очень странно работает теперь...
вот ссылка дней показывает оставшихся до конца года - 363 НО!!! на локалке у меня показует как надо до конца месяца - 29! почему? |
Часовой пояс GMT +3, время: 01:20. |