Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2011, 14:48
Аватар для Chataine
Новичок на форуме
Отправить личное сообщение для Chataine Посмотреть профиль Найти все сообщения от Chataine
 
Регистрация: 17.07.2011
Сообщений: 1

Подсчёт дней до конца акции - помогите разобраться со скриптом
Привет!
Я написала такой скрипт для подсчёта дней до окончания акции (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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться со скриптом alinastil Элементы интерфейса 1 02.04.2011 18:41
Помогите разобраться со скриптом artnik jQuery 0 23.01.2011 18:53
Помогите разобраться со скриптом слайдшоу InviS jQuery 0 23.09.2010 14:47
Помогите разобраться со скриптом! Чайник Элементы интерфейса 1 13.03.2009 23:57
Подсчет дней в IE, даты пользователя gotravelman Internet Explorer 6 26.02.2009 16:25