![]() |
#1 | ||||||||||||
Местный
|
![]()
Приближается глобальное событие - Новый Год.
![]() Вот и задался вопросом о том, как считать время до этого события. В сети нашел инфу в виде кода. Код:
<HTML> <BODY> FGDF <center><SCRIPT LANGUAGE="javascript"> today = new Date(); BigDay = new Date("January 1, 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); minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60); document.write( "До <b>Нового Года</b> осталось <b>"+daysLeft+"</b> дней(дня), <b>"+hrsLeft+"</b> часов и <b>"+minsLeft+"</b> минут."); </SCRIPT> </center> Кто может помочь в решении данного вопроса? Есть конечно вариант обновления всей странички, но это немного не то. ![]()
![]() Смысл чтобы обновлялось не на f5, а само по себе как встроенные часы, если такое возможно. Последний раз редактировалось Elendil; 16.12.2008 в 00:56. |
||||||||||||
![]() ![]() |
![]() ![]() |
![]() |
#2 |
Администратор
|
![]()
Вынеси расчеты в функцию (например, daysleft()), добавь в нее установку таймера:
Код HTML:
setTimeout('daysleft()', 1000); Код HTML:
daysleft();
__________________
[BATTLE]SERVER |
![]() ![]() |
![]() ![]() |
![]() |
#3 |
Местный
|
![]()
Гугл помог!
Для всех желающих разместить таймер ловите код, выглядит страшно, но все работает. ![]() Один из плюсов данного скрипта - согласование в дате. Пример: 1 день, 14 дней, 2 дня. ![]() Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <script type="text/javascript"> <!-- function newYearIn() { var days="<b> дней </b>" var now = new Date(); var newYear = new Date("Jan,01,2009,00:00:00"); var totalRemains = (newYear.getTime()-now.getTime()); if (totalRemains>1) { var RemainsSec=(parseInt(totalRemains/1000)); var RemainsFullDays=(parseInt(RemainsSec/(24*60*60))); if ( RemainsFullDays==2 || RemainsFullDays==3 || RemainsFullDays==4 || RemainsFullDays==22 || RemainsFullDays==23 || RemainsFullDays==24 || RemainsFullDays==32 || RemainsFullDays==33 || RemainsFullDays==34 ) { days="<b> дня </b>" } if ( RemainsFullDays==1 || RemainsFullDays==21 || RemainsFullDays==31 ) { days="<b> день </b>" } var secInLastDay=RemainsSec-RemainsFullDays*24*3600; var RemainsFullHours=(parseInt(secInLastDay/3600)); if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours}; var secInLastHour=secInLastDay-RemainsFullHours*3600; var RemainsMinutes=(parseInt(secInLastHour/60)); if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes}; var lastSec=secInLastHour-RemainsMinutes*60; if (lastSec<10){lastSec="0"+lastSec}; var mcend = Date.parse("Jan 1, 2009, 00:00:00"); var mcnow = now.getTime(); var mc = ((mcend-mcnow)/10).toFixed(0).substr(8); document.getElementById('newyear').innerHTML = "<center>До <b>Нового Года</b> осталось: "+RemainsFullDays+days+RemainsFullHours+":"+RemainsMinutes+":"+lastSec+"</center>"; setTimeout("newYearIn()",10); } else {document.getElementById("newyear").innerHTML = "<center><b> C НОВЫМ ГОДОМ !!! </b></center> ";} } //--> </script> </head> <body onload="newYearIn();"> <span id="newyear"></span> </body> </html> ![]() Выглядит вот так: Последний раз редактировалось Elendil; 18.12.2008 в 01:01. |
![]() ![]() |
![]() ![]() |
Благодарности: 5 | Dragonfire (24.12.2008), MorgaN (25.12.2008), Muskul (22.12.2008), regas_07 (20.12.2008), Ringo (18.12.2008) |
![]() |
#6 | ||||||||||||||||||||||||
Пользователь
|
![]() ![]()
Т.е. функция будет пересчитывать время 100 раз в секунду. Нахрен стока? Можно спокойно выставить таймаут в 500 или даже 1000 и не париться. ![]()
через xmlhttp. Но запросы идут до сервера и обратно довольно долго, поэтому время будет немного неточным. В любом случае это врядли можно будет назвать "изменить скрипт". |
||||||||||||||||||||||||
![]() |
![]() ![]() |
Благодарности: 1 | MorgaN (26.12.2008) |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|