С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
Atek

Как сделать так,чтоб время обновлялось каждую секунду на экране?

28.02.2012, 15:41. Показов 3764. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди помогите пожалуйста со скриптом, как сделать так,чтоб время обновлялось
каждую секунду на экране???

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<script language="JavaScript">
<!--
function rightCase(number, nominative, genitive, plural) {
    var nStr = String(number);
    var lastNum = nStr.substring(nStr.length - 1, nStr.length);
    var tensNum = nStr.substring(nStr.length - 2, nStr.length - 1);
    if (tensNum && tensNum == '1') return plural;
    else if (lastNum == '1') return nominative;
    else if (lastNum > 0 && lastNum < 5) return genitive;
    else return plural;
}
function calcNdisplayTime2004() {
    var strResult = 'До <span style="color: Red; Нового Года</span> осталось: '
    var secondsLeft = ''
    var now = new Date();
    var newYear = new Date(2006, 0, 0, 0, 0, 0);
    var secondsLeft = (newYear - now) / 1000;
    var nowYear = (now.getYear() > 1900) ? now.getYear() : now.getYear() + 1900;
    var weeks = Math.floor(secondsLeft / 24 / 60 / 60 / 7);
    if (weeks) strResult += weeks + ' ' + rightCase(weeks, 'неделя', 'недели', 'недель') + ', '
    secondsLeft = secondsLeft - (weeks * 24 * 60 * 60 * 7);
    var days = Math.floor(secondsLeft / 24 / 60 / 60);
    if (days) strResult += days + ' ' + rightCase(days, 'день', 'дня', 'дней') + ', '
    secondsLeft = secondsLeft - (days * 24 * 60 * 60);
    var hours = Math.floor(secondsLeft / 60 / 60);
    strResult += hours + ' ' + rightCase(hours, 'час', 'часа', 'часов') + ', '
    secondsLeft = secondsLeft - (hours * 60 * 60);
    var minutes = Math.floor(secondsLeft / 60);
    strResult += minutes + ' ' + rightCase(minutes, 'минута', 'минуты', 'минут') + ', '
    secondsLeft = secondsLeft - (minutes * 60);
    var seconds = Math.floor(secondsLeft);
    strResult += seconds + ' ' + rightCase(seconds, 'секунда', 'секунды', 'секунд');
    return strResult;   
}
var counterSpan = null
function updateCounter() {
    if (!counterSpan) counterSpan = document.getElementById('timer');
    if (counterSpan) counterSpan.innerHTML = calcNdisplayTime2004();
 
 
}
 
if (typeof(calcNdisplayTime2004) == 'function') {
document.write(calcNdisplayTime2004());
setInterval('updateCounter()', 1000);
 
}
 
 
 
</script>
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2012, 15:41
Ответы с готовыми решениями:

JavaScript! Как изменить значение кнопки, так чтоб сразу не обновлялось (+код)?
смысл такой: после появления 3-его пункта и потом после нажатия next значение value кнопки next приняло значение &quot;refresh&quot;, но...

Как сделать так, чтобы страница автоматически обновилась через 1 секунду только один раз?
как сделать так, чтобы страница автоматически обновилась через 1 секунду только один раз? Я имею введу, чтоб эта страница обновлялась не...

Как сделать чтобы время обновлялось каждую секунду?
Вот код моих часов Date d = new Date(); SimpleDateFormat format1 = new SimpleDateFormat(&quot;hh:mm&quot;); ...

3
5 / 5 / 5
Регистрация: 24.10.2011
Сообщений: 269
08.03.2012, 10:07
[bold]Atek[/bold]

Если честно, то очень тяжело и лень разбераться с твоим скриптом. Поэтому я даю тебе свой скрипт, который потом можешь модернизировать, изменять и делать сним всё, что захочешь.
<html><title> </title><head>
<script>
function NewTime() {
var dok=new Date()
var nosh=dok.getMonth()
if (nosh==11) {
var g, g1, g2
var a=new Date()
var b=a.getDate()-31
if (b<=0) {
b=b*(-1)
if ((b==1)||(b==21)||(b==31)) {
g="день"
}
else
if ((b==2)||(b==3)||(b==4)||(b==22)||(b==23 )||(b==24)) {
g="дня"
}
else {
g="дней"
}
}
var c=a.getHours()-23
if (c<=0) {
c=c*(-1)
if ((c==1)||(c==21)) {
g1="час"
}
else
if ((c==2)||(c==3)||(c==4)||(c==22)||(c==23 )) {
g1="часа"
}
else {
g1="часов"
}
}
var d=a.getMinutes()-60
if (d<=0) {
d=d*(-1)
if ((d==1)||(d==21)||(d==31)||(d==41)||(d== 51)) {
g2="минута"
}
else
if ((d==2)||(d==3)||(d==4)||(d==22)||(d==23 )||(d==24)||(d==32)||(d==33)||(d==34)||( d==42)||(d==43)||(d==44)||(d==52)||(d==5 3)||(d==54)) {
g2="минуты"
}
else {
g2="минут"
}
}
vadim.innerHTML="Осталось до Нового года: "+b+" "+g+" "+c+" "+g1+" "+d+" "+g2
setTimeout("NewTime()",1000)
}
}
</script>
</head>
<body onLoad="NewTime()
<h2 id='vadim' style="position:absolute;top:0;left:180; color:red </h2>
</body>
</html>
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
08.03.2012, 13:25
Я бы так сделал (измененения выделены жирным).
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<script language="javascript 
function rightCase(number, nominative, genitive, plural)
{
    var nStr = String(number);
    var lastNum = nStr.substring(nStr.length - 1, nStr.length);
    var tensNum = nStr.substring(nStr.length - 2, nStr.length - 1);
    if (tensNum && tensNum == '1')
        return plural;
    else if (lastNum == '1')
        return nominative;
    else if (lastNum > 0 && lastNum < 5)
        return genitive;
    else
        return plural;
}
 
function calcNdisplayTime2004()
{
    [bold]var strResult = "";[/bold]
    var now = new Date();
    [bold]var newYear = new Date(2006, 0, 1, 0, 0, 0);[/bold]
    var secondsLeft = (newYear - now) / 1000;
    var nowYear = (now.getYear() > 1900) ? now.getYear() : now.getYear() + 1900;
    var weeks = Math.floor(secondsLeft / 24 / 60 / 60 / 7);
    if (weeks) strResult += weeks + ' ' + rightCase(weeks, 'неделя', 'недели', 'недель') + ', '
    secondsLeft = secondsLeft - (weeks * 24 * 60 * 60 * 7);
    var days = Math.floor(secondsLeft / 24 / 60 / 60);
    if (days) strResult += days + ' ' + rightCase(days, 'день', 'дня', 'дней') + ', '
    secondsLeft = secondsLeft - (days * 24 * 60 * 60);
    var hours = Math.floor(secondsLeft / 60 / 60);
    strResult += hours + ' ' + rightCase(hours, 'час', 'часа', 'часов') + ', '
    secondsLeft = secondsLeft - (hours * 60 * 60);
    var minutes = Math.floor(secondsLeft / 60);
    strResult += minutes + ' ' + rightCase(minutes, 'минута', 'минуты', 'минут') + ', '
    secondsLeft = secondsLeft - (minutes * 60);
    var seconds = Math.floor(secondsLeft);
    strResult += seconds + ' ' + rightCase(seconds, 'секунда', 'секунды', 'секунд');
    return strResult;
}
 
var counterSpan = null
function updateCounter()
{
    if (!counterSpan) counterSpan = document.getElementById('timer');
    if (counterSpan) counterSpan.innerHTML = calcNdisplayTime2004();
}
 
[bold]window.onload = function() {
    updateCounter();
    setInterval('updateCounter()', 1000);
}[/bold]
</script>
 
[bold]До <span style="color:red Нового Года</span> осталось: <span id="timer </span>[/bold]
Еще есть смысл в функции calcNdisplayTime2004 проверять значение переменной secondsLeft после ее инициализации, чтобы отловить момент когда Новый год уже наступил.
0
5 / 5 / 5
Регистрация: 24.10.2011
Сообщений: 269
08.03.2012, 14:41
Вот твой модифицированный скрипт и полностью рабочий:

<htm>
<head>
<title>
</title>
<script language="javascript
function rightCase(number, nominative, genitive, plural)
{
var nStr = String(number);
var lastNum = nStr.substring(nStr.length - 1, nStr.length);
var tensNum = nStr.substring(nStr.length - 2, nStr.length - 1);
if (tensNum && tensNum == '1')
return plural;
else if (lastNum == '1')
return nominative;
else if (lastNum > 0 && lastNum < 5)
return genitive;
else
return plural;
}

function calcNdisplayTime2004()
{
var strResult = "";
var now = new Date();
var newYear = new Date(2006, 0, 1, 0, 0, 0);
var secondsLeft = (newYear - now) / 1000;
var nowYear = (now.getYear() > 1900) ? now.getYear() : now.getYear() + 1900;
var weeks = Math.floor(secondsLeft / 24 / 60 / 60 / 7);
if (weeks) strResult += weeks + ' ' + rightCase(weeks, 'неделя', 'недели', 'недель') + ', '
secondsLeft = secondsLeft - (weeks * 24 * 60 * 60 * 7);
var days = Math.floor(secondsLeft / 24 / 60 / 60);
if (days) strResult += days + ' ' + rightCase(days, 'день', 'дня', 'дней') + ', '
secondsLeft = secondsLeft - (days * 24 * 60 * 60);
var hours = Math.floor(secondsLeft / 60 / 60);
strResult += hours + ' ' + rightCase(hours, 'час', 'часа', 'часов') + ', '
secondsLeft = secondsLeft - (hours * 60 * 60);
var minutes = Math.floor(secondsLeft / 60);
strResult += minutes + ' ' + rightCase(minutes, 'минута', 'минуты', 'минут') + ', '
secondsLeft = secondsLeft - (minutes * 60);
var seconds = Math.floor(secondsLeft);
strResult += seconds + ' ' + rightCase(seconds, 'секунда', 'секунды', 'секунд');
return strResult;
}

var counterSpan = null
function updateCounter()
{
timer.innerHTML = calcNdisplayTime2004();
setTimeout('updateCounter()', 500);
}
</script>
</head>
<body onLoad="updateCounter();
До <span style="color:red Нового Года</span> осталось: <span id="timer </span>
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2012, 14:41
Помогаю со студенческими работами здесь

Как сделать, чтобы время в текстбоксе обновлялось каждую секунду
Как сделать, чтобы время в текстбоксе обновлялось каждую секунду?

Как сделать чтоб значение Label изменялось каждую секунду на 2 единицы
Как сделать чтоб значение Label изменялось каждую секунду на 2 от 1000 до 100000 (1002...1004...1008...100000)

Я хочу сделать циферблат, который будет каждую секунду менять время.
Подскажите, как можно в javafx реализовать бесконечный цикл. Допустим я хочу сделать циферблат, который будет каждую секунду менять время.

Сделать так, чтобы каждую секунду в TextBox попадало значение таймера
Помагите реализовать такой код! Запущен таймер! Я хочу чтобы каждую секунду в TextBox попадала значение таймера!

Как можно сделать так, чтоб можно было вписывать время в таблицу?
Есть таблица: create table PROGRAMY ( pr_name varchar2(50), zanra_ID number primary key, datums date default SYSYTEM, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru