|
Заставим их тикать ))
|
|
| NoName | Дата: 20 Октября 2008, 15:59 | Сообщение # 1 |  ● ● ● ● ● 26 сообщений Статус: Offline | Есть переменная $TIME$, общих настройках для нее установлен следущий вид: ЧЧ:ММ:СС Есть переменные $DAY$, $MONTH$, $YEAR$ Задача - заставить часы тикать. Как мне представляется, надо строку распилить на три переменных h, m и s, $DAY$, $MONTH$, $YEAR$ занести соответственно в day, month, year. Еще нужна переменная, отвечающая за количество дней в месяце, допустим назовем ее kd: if (month==1) kd=31; else if (month==2) kd=(year%4==0)?29:28; else if (month==3) kd=31; else if (month==4) kd=30; else if (month==5) kd=31; else if (month==6) kd=30; else if (month==7) kd=31; else if (month==8) kd=31; else if (month==9) kd=30; else if (month==10) kd=31; else if (month==11) kd=30; else if (month==12) kd=31; Переменная s ежесекундно меняется (как то так s = (s + 1)%60) При обнулении s меняется m (m = (m + 1)%60). При обнулении m меняется h (h = (h + 1)%24). При обнулении h меняется day (day = (day + 1)%kd). При обнулении day меняется month (month = (month + 1)%12). При обнулении month меняется year (++year) | | |
|
| Бармалей | Дата: 20 Октября 2008, 16:11 | Сообщение # 2 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Quote (NoName) При обнулении day меняется month (month = (month + 1)%12). При обнулении month меняется year (++year) А учитывать кол-во дней в месяце? Весокосный год? 
 | | |
|
| NoName | Отредактировал NoName - Понедельник, 20 Октября 2008, 16:13 Дата: 20 Октября 2008, 16:13 | Сообщение # 3 |  ● ● ● ● ● 26 сообщений Статус: Offline | Бармалей, конечно обвинять админа в невнимательном чтении - это не есть хорошо, но... Quote (NoName) Еще нужна переменная, отвечающая за количество дней в месяце, допустим назовем ее kd Quote (NoName) else if (month==2) kd=(year%4==0)?29:28; Quote (NoName) При обнулении h меняется day (day = (day + 1)%kd) | | |
|
| mob_dp | Дата: 20 Октября 2008, 16:33 | Сообщение # 4 | ● ● ● ● ● 4112 сообщений Статус: Offline | Омг... а чем вы тут занимаетесь? о_О Если нужно чтоб часы "тикали" то где то в глубинах форума есть решение на jQ кот обновляет участок кода (в нашем случае $TIME$) и время ежесекундно обновляется. Интерес реализовать это конечно хорошо, но если вам реально нужны просто часы то лучше ставить флеш-часики имхо. | | |
|
| Gaara | Дата: 20 Октября 2008, 16:35 | Сообщение # 5 |  ● ● ● ● ● 1312 сообщений Статус: Offline | Quote (mob_dp) и время ежесекундно обновляется. это сколько же запросов на страницу отправлять.... у меня лично интернет медленный и за секунду не загрузит ее содержимое. легче сделать как в первом посте предлагает, имхо. | | |
|
| mob_dp | Дата: 20 Октября 2008, 16:48 | Сообщение # 6 | ● ● ● ● ● 4112 сообщений Статус: Offline | Gaara, блин, внатуре. Эта ж пременная сразу меняется на эти 8 циферок и чтоб получить новые данные необходимо загрузить страницу... Короче мы тут сидим велосипед изобретает, а этих велосипедов уже целую кучу выпустили. Обычные часы Визуальные | | |
|
| NoName | Дата: 20 Октября 2008, 16:49 | Сообщение # 7 |  ● ● ● ● ● 26 сообщений Статус: Offline | Quote (mob_dp) Если нужно чтоб часы "тикали" то где то в глубинах форума есть решение на jQ кот обновляет участок кода (в нашем случае $TIME$) и время ежесекундно обновляется. Есть у меня ощущение, что нормально работать такой вариант будет при очень хорошем интернете - задержка в загрузке и часы приостанавливаются... И сервер дергать каждую секунду - не гуманно Quote (mob_dp) если вам реально нужны просто часы то лучше ставить флеш-часики имхо. Нужны просто текстовые часики, которые можно было бы засунуть в span, и через него задать им нужный цвет, шрифт и т.д. Существуют скрипты, показывающие время, установленное на компьютере. Но этот вариант тоже не подходит: у пользователя может стоять любе время в настройках, а пользователи должны видеть одно и тоже время (в этом есть свой смысл рамках моего сайта). | | |
|
| Gaara | Дата: 20 Октября 2008, 16:51 | Сообщение # 8 |  ● ● ● ● ● 1312 сообщений Статус: Offline | Quote (NoName) Существуют скрипты, показывающие время, установленное на компьютере переделать и все =) | | |
|
| mob_dp | Дата: 20 Октября 2008, 16:57 | Сообщение # 9 | ● ● ● ● ● 4112 сообщений Статус: Offline | NoName, тю, тоже самое только в скрипте исходно задать значение которое выдаст сервер вот и все. Поковыряй первый скрипт  | | |
|
| NoName | Дата: 20 Октября 2008, 16:59 | Сообщение # 10 |  ● ● ● ● ● 26 сообщений Статус: Offline | Вот это как раз те, которые показывающие время, установленное на компьютере. Quote (Gaara) переделать и все =) Ну, для этого на хотябы js знать  Добавлено (20 Октябрь 2008, 16:59) ---------------------------------------------
Quote (mob_dp) NoName, тю, тоже самое только в скрипте исходно задать значение которое выдаст сервер вот и все. Поковыряй первый скрипт wink Попытаюсь, но я js слабо понимаю... | | |
|
| mob_dp | Дата: 20 Октября 2008, 16:59 | Сообщение # 11 | ● ● ● ● ● 4112 сообщений Статус: Offline | NoName, да елки палки! Читай ты пост нормально! Говорю же задать начальное время переменной $TIME$ и дальше пускай тикают себе скриптом  | | |
|
| NoName | Дата: 20 Октября 2008, 17:12 | Сообщение # 12 |  ● ● ● ● ● 26 сообщений Статус: Offline | mob_dp, что я не так прочитал? Я щас смотрю этот, и пытаюсь понять, куда бы тут $TIME$ присунуть. Но пока безуспешно. | | |
|
| Бармалей | Дата: 20 Октября 2008, 17:45 | Сообщение # 13 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | ой, видимо между строк читал берем $TIME$, обрамляем в spanCode <span id="clocks">$TIME$</span> в админке настраиваем вывод времени с секундами (например 23:59:59) и получаем время так Code time = document.getElementById('clocks').innerHTML.split(':'); В результате мы получаем массив, где 0-ой элемент - часы, 1-ый - минуты и 2-ой - секунды Пишем функцию, которая будет считать время каждую секунду и вызываем ее с промежутком 1000мс Code setInterval('function()',1000);
 | | |
|
| OOOPriveter | Дата: 20 Октября 2008, 18:31 | Сообщение # 14 |  ● ● ● ● ● 27 сообщений Статус: Offline | Quote (NoName) Я щас смотрю этот, и пытаюсь понять, куда бы тут $TIME$ присунуть. Но пока безуспешно. Code var all=new Date(); var hours=all.getHours(); var minutes=all.getMinutes(); var seconds=all.getSeconds(); Меняем на Code var all='$TIME$'.split(':'); var hours=all[0]; var minutes=all[1]; var seconds=all[2]; [ Сообщение от пользователя с низкой репутацией. Показать ] | | |
|
| NoName | Отредактировал NoName - Вторник, 21 Октября 2008, 11:51 Дата: 21 Октября 2008, 11:54 | Сообщение # 15 |  ● ● ● ● ● 26 сообщений Статус: Offline | Всем спасибо за помощь и участие. Особенно Бармалею. Вот получившийся в результате код Code <div id="uclocks" style="display:none;">$TIME$</div> <span id="cday">$DAY$</span>.<span id="cmonth">$MONTH$</span>.<span id="cyear">$YEAR$</span>, <span id="time0"></span>:<span id="time1"></span>:<span id="time2"></span>
<script type="text/javascript"> time = document.getElementById('uclocks').innerHTML.split(':'); var kd = <?if($MONTH$=1)?>31 <?endif?><?if($MONTH$=2)?><?if($YEAR$%4=0)?>29<?else?>28<?endif?> <?endif?><?if($MONTH$=3)?>31 <?endif?><?if($MONTH$= 4)?>30 <?endif?><?if($MONTH$=5)?>31 <?endif?><?if($MONTH$=6)?>30 <?endif?><?if($MONTH$=7)?>31 <?endif?><?if($MONTH$=8)?>31 <?endif?><?i f($MONTH$=9)?>30 <?endif?><?if($MONTH$=10)?>31 <?endif?><?if($MONTH$=11)?>30 <?endif?><?if($MONTH$=12)?>31 <?endif?>; var day=$DAY$; var month=$MONTH$; var year=$YEAR$; document.getElementById('time2').innerHTML = (time[2]<10)?'0'+time[2]:time[2]; document.getElementById('time1').innerHTML = (time[1]<10)?'0'+time[1]:time[1]; document.getElementById('time0').innerHTML = (time[0]<10)?'0'+time[0]:time[0]; function utime(){ ++time[2]; if(time[2]==60){ time[2] = 0; ++time[1]; if(time[1]==60){ time[1] = 0; ++time[0]; if(time[0]==24){ ++day; time[0] = 0; if(day>kd){ day = 1; ++month; if(month==13){ month = 1; ++year; document.getElementById('cyear').innerHTML = year;}; document.getElementById('cmonth').innerHTML = (month<10)?'0'+month:month;}; document.getElementById('cday').innerHTML = (day<10)?'0'+day:day;}; document.getElementById('time0').innerHTML = (time[0]<10)?'0'+time[0]:time[0];}; document.getElementById('time1').innerHTML = (time[1]<10)?'0'+time[1]:time[1];}; document.getElementById('time2').innerHTML = (time[2]<10)?'0'+time[2]:time[2];}; setInterval('utime()',1000); </script> Добавлено (21 Октябрь 2008, 11:54) --------------------------------------------- ЗЫ: на 15ой строчке пробела между i и f не должно быть. Вроде вставляю код без всяких пробелов, нажимаю "Добавить ответ" - пробел появляется  | | |
|
| PakBIO | Дата: 29 Октября 2008, 05:02 | Сообщение # 16 | ● ● ● ● ● 101 сообщение Статус: Offline | хм, часики глючат...) | | |
|
| wellnemo | Дата: 29 Октября 2008, 06:02 | Сообщение # 17 |  ● ● ● ● ● 103 сообщения Статус: Offline | че та я невпер че это за чесы ловите эти >> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=windows-1251"> <!-- HEAD START HERE --> <script language="JavaScript"> function fulltime() { var time=new Date(); document.clock.full.value=time.toLocaleString(); setTimeout('fulltime()',500) } </script> <!-- HEAD END HERE --> </head> <body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0"> <center> <!-- BODY START HERE --> <form name=clock> <input type=text size=24 name=full> </form> <script language="JavaScript"> fulltime(); </script> <!-- BODY END HERE --> </body> </html> пример можно посматреть тут в верхнем правом углу muzmax.ru с такими кодами я бы пожелал работать через импорт удаленново использования | | |
|