Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2008, 00:34
Jex Jex вне форума
Интересующийся
Отправить личное сообщение для Jex Посмотреть профиль Найти все сообщения от Jex
 
Регистрация: 14.11.2008
Сообщений: 10

Время и дата, обновление в онлайне
Всем привет!
Помогите сделать так, чтобы шло обновление времени каждую секунду, например.
<SCRIPT LANGUAGE="JavaScript">

        var now = new Date();
        var hours = now.getHours();
        var minutes = now.getMinutes();
	var seconds = now.getSeconds();
        var timeValue = "" + ((hours >24) ? hours -24 :hours)
        timeValue += ((minutes < 10) ? ":0" : ":") + minutes
        timeValue += ((seconds < 10) ? ":0" : ":") + seconds
	timerRunning = true;
 
      mydate = new Date();
      myday = mydate.getDay();
      mymonth = mydate.getMonth();
      myweekday= mydate.getDate();
      weekday= myweekday;
      myyear= mydate.getYear();
      year = myyear
 
	if  (year <  2000)   
	year = year + 1900; 
      if(myday == 0)
              day = " Воскресенье, "      
       else if(myday == 1)
            day = " Понедельник, "
       else if(myday == 2)
              day = " Вторник, "   
       else if(myday == 3)
              day = " Среда, "   
       else if(myday == 4)
              day = " Четверг, "
       else if(myday == 5)
              day = " Пятница, "
       else if(myday == 6)
              day = " Суббота, "
       if(mymonth == 0)
               month = "Января "
       else if(mymonth ==1)
               month = "Февраля "
       else if(mymonth ==2)
              month = "Марта "
       else if(mymonth ==3)
             month = "Апреля "
       else if(mymonth ==4)
               month = "Мая "
       else if(mymonth ==5)
               month = "Июня "
       else if(mymonth ==6)
               month = "Июля "
       else if(mymonth ==7)
             month = "Августа "
       else if(mymonth ==8)
            month = "Сентября "
       else if(mymonth ==9)
           month = "октября "
       else if(mymonth ==10)
           month = "Ноября "
       else if(mymonth ==11)
           month = "Декабря"

      document.write("<P ALIGN=RIGHT><FONT SIZE=1 FACE=ARIAL>" + timeValue + " | " +day + month);
      document.write(myweekday+","+ " " + year + "</FONT></p>");


 </SCRIPT>



Я пытался текст в теле поместить в функцию а ля
function show(){
...
setTimeout("show()",1000)
}
window.onload=show

но не помогло.
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2008, 01:20
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

в функции вместо document.write(); используйте document.getElementById().innerHtml = ""; , ну и вешайте на таймер как Вы и сказали.

Получится что то типа:

document.getElementById("time").innerHTML='<span id="time">'+timeValue+' | '+day+myweekday+' '+month+', '+year+'</span>';


Ну и в документ соответственно добавьте <span id="time"></span>

P.S. Вместо множественного ветвления в Вашем случае было бы красивее использовать switch

Последний раз редактировалось Zibba, 20.11.2008 в 01:30.
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2008, 01:36
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Пока писал, Zibba уже ответил)))

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var datetime = {
	month: ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'],
	day: ['Воскрсенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
	show: function(node) {
		var _this = this;
		setInterval(function() {
			var date = new Date();
			node.innerHTML = [_this.day[date.getDay()], ', ', date.getDate(), ' ', _this.month[date.getMonth()], ' ', date.getFullYear()].join('');
		}, 1000);
	}
};

window.onload = function() {
	datetime.show(document.getElementById('date'));
};
</script>
</head>

<body>
	<div id="date"></div>
</body>
</html>

Вывод времени не стал делать, думаю сами догадаетесь как сделать. Метод «getFullYear» не работает вроде бы только в старых версиях «Mozilla», которые уже не актуальны, поправьте если ошибаюсь.

Последний раз редактировалось Octane, 20.11.2008 в 01:51.
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2008, 07:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

При создании часов нельзя ставить таймаут в одну секунду, т.к. реально он будет больше. В результате секунды будут идти неровно.
Ответить с цитированием
  #5 (permalink)  
Старый 20.11.2008, 10:48
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Спасибо, не знал. А какое тогда оптимаьлное время для одной секунды? Или будет зависеть от кода скрипта?
Ответить с цитированием
  #6 (permalink)  
Старый 20.11.2008, 11:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Zibba
А какое тогда оптимаьлное время для одной секунды?
1 миллисекунда.
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2008, 12:09
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

1 миллисекунда - это слишком часто... Я ставил 100 - нормально. То есть время таймера - это максимальная погрешность на которую может отклонится отрисовка... Если ты человек-часы и сможешь отличить 0,9 секунды от 1,1 секунды, то ставь погрешность меньше...

Везде принимается за визуальный лаг 300мс, так что +-100 (=200) меньше общепринятого.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать disabled кнопки во время отправки формы? Bad Request Events/DOM/Window 7 16.04.2014 13:49
Определить время генерации страницы. Phoenix Общие вопросы Javascript 3 19.12.2008 08:07
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27
Цикличное обновление страницы Roman_kstu Общие вопросы Javascript 7 29.05.2008 05:55