Скрипт отсчета времени

DZ
На сайте с 10.08.2006
Offline
143
2456

Раньше был, но я теперь найти его не могу.

Делал скрипт на ява, который отсчитывал время до определенного события. Т.е. на странице был сетчик с интерактивно меняющимеся цифрами, вплоть дло миллисекунд. Осчитывалось время до определенного события. Сейчас нужно нечто подобное. Может есть покрасивше решение, например на Flesh? Или на яве (я уже сто лет не писал на нем ничего).

Ветышев
На сайте с 12.03.2008
Offline
128
#1

<html>

<head>
<script language="JavaScript">
<!--
function nydate()
{
today = new Date();
BigDay = new Date("January 01, 2009");
msPerDay = 24 * 60 * 60 * 1000;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
e_minsLeft = (e_hrsLeft - hrsLeft)*60;
minsLeft = Math.floor(e_minsLeft);
secLeft = Math.floor((e_minsLeft - minsLeft)*60);

if (daysLeft == 1, 21, 31) daytxt = ("день"), istxtd = ("остался");
if ((daysLeft>1 && daysLeft<5) || (daysLeft>21 && daysLeft<25)) daytxt = ("дня"), istxtd = ("осталось");
if ((daysLeft>=5 && daysLeft<21) || (daysLeft>=25 && daysLeft<31)) daytxt = ("дней"), istxtd = ("осталось");

if (hrsLeft == 1, 21) hrstxt = ("час"), istxth = ("остался");
if ((hrsLeft>1 && hrsLeft<5) || (hrsLeft>21 && hrsLeft<25)) hrstxt = ("часа"), istxth = ("осталось");
if ((hrsLeft == 0) || (hrsLeft>=5 && hrsLeft<21)) hrstxt = ("часов"), istxth = ("осталось");

if (minsLeft == 1, 21, 31, 41, 51) mintxt = ("минута"), istxtm = ("осталась");
if ((minsLeft>1 && minsLeft<5) || (minsLeft>21 && minsLeft<25) || (minsLeft>31 && minsLeft<35) || (minsLeft>41 && minsLeft<45) || (minsLeft>51 && minsLeft<55)) mintxt = ("минуты"), istxtm = ("осталось");
if ((minsLeft == 0) || (minsLeft>=5 && minsLeft<21) || (minsLeft>=25 && minsLeft<31) || (minsLeft>=35 && minsLeft<41) || (minsLeft>=45 && minsLeft<51) || (minsLeft>=55 && minsLeft<60)) mintxt = ("минут"), istxtm = ("осталось");

if (secLeft == 1, 21, 31, 41, 51) sectxt = ("секунда");
if ((secLeft>1 && secLeft<5) || (secLeft>21 && secLeft<25) || (secLeft>31 && secLeft<35) || (secLeft>41 && secLeft<45) || (secLeft>51 && secLeft<55)) sectxt = ("секунды");
if ((secLeft == 0) || (secLeft>=5 && secLeft<21) || (secLeft>=25 && secLeft<31) || (secLeft>=35 && secLeft<41) || (secLeft>=45 && secLeft<51) || (secLeft>=55 && secLeft<60)) sectxt = ("секунд");

if (daysLeft>0)
{
time=("До Нового Года "+istxtd+" <b>"+daysLeft+"</b> "+daytxt+", <b>"+hrsLeft+"</b> "+hrstxt+", <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
if(document.all)
{
nyspan.innerHTML=time;
}
if(document.layers)
{
document.layers.nyclock.document.open();
document.layers.nyclock.document.write("До Нового Года "+istxtd+" <b>"+daysLeft+"</b> "+daytxt+", <b>"+hrsLeft+"</b> "+hrstxt+", <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
document.layers.nyclock.document.close();
}
setTimeout("nydate()",1000);
}
if (daysLeft==0)
{
if (hrsLeft!=0)
{
time=("До Нового Года "+istxth+" <b>"+hrsLeft+"</b> "+hrstxt+" и <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
if(document.all)
{
nyspan.innerHTML=time;
}
if(document.layers)
{
document.layers.nyclock.document.open();
document.layers.nyclock.document.write("До Нового Года "+istxth+" <b>"+hrsLeft+"</b> "+hrstxt+" и <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
document.layers.nyclock.document.close();
}
setTimeout("nydate()",1000);
}
else
{
if (minsLeft==0) document.write( "До Нового Года остались считанные секунды!");
if (minsLeft==1) document.write( "До Нового Года осталась всего лишь минута!");
if (minsLeft!=0 && minsLeft!=1)
{
time=("До Нового Года "+istxtm+" всего <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
if(document.all)
{
nyspan.innerHTML=time;
}
if(document.layers)
{
document.layers.nyclock.document.open();
document.layers.nyclock.document.write("До Нового Года "+istxtm+" всего <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
document.layers.nyclock.document.close();
}
setTimeout("nydate()",1000);
}
}
}
if (daysLeft<0) document.write("Сейчас уже 2009 год.<br>Поздравляем!");
}
window.onload = nydate;
//-->
</script>
</head>
<body>
<span id="nyspan"></span>
<layer id="nyclock"></layer></center>
</body>
</html>
Перенос сайтов на WordPress (/ru/forum/1007912)
unodj
На сайте с 18.09.2007
Offline
47
#2

на FLASH конечно гораздо эффектнее можно сделать :)

А таймер должен что то активировать в конце цикла или просто отсчитывать время "до нового года"?

[Удален]
#3

оффтоп: хватит яваскрипт явой называть! =)

онтоп: setTimeout решает все подобные проблемы, а еще есть куча таких готовых скриптов и плагинов даже. Чуток погуглить и все.

DZ
На сайте с 10.08.2006
Offline
143
#4

За скрипт спасибо.

За яву простите, конечно же JavaScript.

Тема закрыта.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий