Подсчёт дней до конца акции - помогите разобраться со скриптом
Привет!
Я написала такой скрипт для подсчёта дней до окончания акции (1 сентября 2011 года). Он работает, но с некоторыми глюками. Помогите, пожалуйста, разобраться. 1) Почему-то секунды как-то странно прыгают, а не меняются равномерно, как в часах. 2) Несмотря на то, то задала с помощью If отображение секунд и минут в двухзначном формате, они отображаются в однозначном. 3) Если возможно, была бы рада советам по упрощению кода. А вот и сам код: <script type="text/javascript"> <!-- function daysTillEnd() { var endact=new Date(); var today=new Date(); var today0=today.getTime();//кол-во миллисекунд с 1.01.1970 до сегодня var date0=endact.setDate (1); //установка нужного числа (первое) var month0=endact.setMonth (8); //установка нужного месяца (0-январь..,8-сентябрь) var year0=endact.setYear (2011); //установка нужного года (2011) var hour0=endact.setHours (0);// устанока нужного часа; var minute0=endact.setMinutes (0);//установка нужных минут; var second0=endact.setSeconds(0);//установка нужных секунд; var endactinmsc=endact.getTime(); //кол-во миллисекунд с 1.01.1970 до 1.09.2011 var endactrestinmsc=endactinmsc-today0; //кол-во миллисекунд с сегодня до 1.09.2011 var endactrestinsec=endactrestinmsc/1000;//кол-во секунд с сегодня до 1.09.2011 var endactrestinmin=endactrestinsec/60; //кол-во минут с сегодня до 1.09.2011 var endactrestinhr=endactrestinmin/60;//кол-во часов с сегодня до 1.09.2011 var endactrestindays=endactrestinhr/24;//кол-во дней с сегодня до 1.09.2011 var endactrestindaysround=Math.floor(endactrestindays) ;//округлённое кол-во дней до 1.09.2011 var endactrestinhrleft=(endactrestindays-endactrestindaysround)*24;//остаток часов var endactrestinhrleftround=Math.floor(endactrestinhrl eft);//округлённый остаток часов var endactrestinminleft=(endactrestinhrleft-endactrestinhrleftround)*60;//остаток минут var endactrestinminleftround=Math.floor(endactrestinmi nleft);//округлённый остаток минут var endactrestinsecleft=(endactrestinminleft-endactrestinminleftround)*60;//остаток секунд var endactrestinsecleftround=Math.floor(endactrestinse cleft);//округлённый остаток секунд if(endactrestinminleftround < 10) { endactrestinminleftround = "0" + endactrestinminleftround } if(endactrestinsecleftround < 10) { endactrestinsecleftrounds = "0" + endactrestinsecleftround; } document.clockform.clock.value = endactrestindaysround+" дн "+endactrestinhrleftround + " ч. " + endactrestinminleftround + " м. " + endactrestinsecleftround + " с. "; setTimeout("daysTillEnd()",10) } //--> </script> </head> <body onLoad="daysTillEnd()"> <h3>До окончания акции осталось:<h3> <form name="clockform"> <input name="clock" type="text" value=""> </form> </body> </html> |
Часовой пояс GMT +3, время: 22:01. |