Подтвердить что ты не робот

Как регулярно обновлять время?

function timeClock()
{
    setTimeout("timeClock()", 1000);        
    now = new Date();
    alert(now);
    f_date = now.getDate()+" "+strMonth(now.getMonth())+" "+now.getFullYear()+" / "+timeFormat(now.getHours(), now.getMinutes());
    return f_date;
}

<span class="foo"><script type="text/javascript">document.write(timeClock());</script></span>

оповещения (в настоящее время); дает мне значение каждую секунду, но не обновляется в html. Как обновить время на html без обновления страницы?

4b9b3361

Ответ 1

В вашем коде есть ряд ошибок. Без использования var infront ваших объявлений переменных вы пропустите их в глобальную область.

Кроме того, использование document.write обескуражено.

Вот как бы я это сделал:

JavaScript:

function updateClock() {
    var now = new Date(), // current date
        months = ['January', 'February', '...']; // you get the idea
        time = now.getHours() + ':' + now.getMinutes(), // again, you get the idea

        // a cleaner way than string concatenation
        date = [now.getDate(), 
                months[now.getMonth()],
                now.getFullYear()].join(' ');

    // set the content of the element with the ID time to the formatted string
    document.getElementById('time').innerHTML = [date, time].join(' / ');

    // call this function again in 1000ms
    setTimeout(updateClock, 1000);
}
updateClock(); // initial call

HTML:

<div id="time"> </div>

Ответ 2

setInterval (выражение, таймаут);

Функция setTimeout предназначена для одного таймаута, поэтому использование setInterval было бы более подходящей опцией. SetInterval будет запускаться регулярно без дополнительных строк, на которые отвечает Ivo.

Я бы переписал ответ Иво следующим образом:

JavaScript:

function updateClock() {
  // Ivo content to create the date.
  document.getElementById('time').innerHTML = [date, time].join(' / ')
}
setInterval(updateClock, 1000);

Попробуйте сами! https://jsfiddle.net/avotre/rtuna4x7/2/

Ответ 3

x = document.getElementsByTagName('SPAN').item(0);
x.innerHTML = f_date;

попробуйте поставить этот блок кода вместо оператора return, я его не тестировал, но он, вероятно, будет работать

Ответ 4

Может быть что-то в плагине timeago jQuery вы можете подключиться, но я честно не пробовал...

http://timeago.yarp.com/

Ответ 5

$('span.foo').html(f_date);

поместите это внутри вашей функции timeclock()

непроверенных

    function timeClock()
    {
        setTimeout("timeClock()", 1000);        
        now = new Date();
        alert(now);
        f_date = now.getDate()+" "+strMonth(now.getMonth())+" "+now.getFullYear()+" / "+timeFormat(now.getHours(), now.getMinutes());
       $('span.foo').html(f_date);

}

Ответ 7

Я думаю, что ваша функция setTmeout имеет неправильные переменные, первая должна быть функцией, а не строкой, которая немного смутила меня. В основном вам нужно записать тег span при запуске функции.

Я создал версию jQuery в скрипте, чтобы продемонстрировать, что я имею в виду. Не было вашей функции strMonth, но вы поняли эту идею. Я также изменил оповещение на console.log, но вы можете удалить эту строку.

http://jsfiddle.net/5JWEV/

Ответ 8

Straigt Формат/обновление Javascript

1: создать месяц конвертер func 2: создать функцию времени 3: создать функцию обновления 4: создать функцию outPut

    // month converter from index / 0-11 values
function covertMonth(num){
  let months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  // look into index with num 0-11
  let computedRes = months[num];
  return computedRes;
}

// time func
function Time(){
   // important to get new instant of the Date referrance
  let date = new Date();
  this.time = date.toLocaleTimeString();
  this.year = date.getUTCFullYear();
  this.day = date.getUTCDate();
  this.month = date.getUTCMonth();
  this.currentTime = date.toLocaleTimeString() + ' ' + covertMonth(this.month) + ' ' + this.day + ' ' + this.year;
  return this.currentTime;
}


 function timeOutPut(){
  let where = document.getElementById('some-id');
  where.textContent = Time(); // 1:21:39 AM Dec 17 2017
}

   // run every 5secs
setInterval(timeOutPut, 5000);

Ответ 9

function timeClock()
{
    setTimeout("timeClock()", 1000);        
    now = new Date();
    alert(now);
    f_date = now.getDate()+" "+strMonth(now.getMonth())+" "+now.getFullYear()+" / "+timeFormat(now.getHours(), now.getMinutes());

    document.getElementById("foo").innerHTML = f_date;

}

<span id="foo"></span>