|
|
#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) | |
|
|