setInterval不是每秒刷新一次数据

时间:2020-02-21 16:53:09

标签: javascript jquery html setinterval

var today = new Date();
var day = today.getDay()
var month = today.getMonth();
var year = today.getFullYear()
var date = (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date + ' ' + time;

function dateTimeClock() {
  $('#today').text(today);
  $('#day').text(day);
  $('#month').text(month);
  $('#year').text(year);
  $('#date').text(date);
  $('#time').text(time);
  $('#dateTime').text(dateTime);
}

setInterval(dateTimeClock, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<p id="today"></p>
<p id="day"></p>
<p id="month"></p>
<p id="year"></p>
<p id="date"></p>
<p id="time"></p>
<p id="dateTime"></p>

有人可以告诉我为什么我的setInterval没有启动吗?

我希望我的数据每秒刷新一次。

2 个答案:

答案 0 :(得分:1)

日期的var在间隔之外定义,因此不会更新。要解决此问题,您必须将其包含在dateTimeClock函数中


function dateTimeClock() {

var today = new Date();
var day = today.getDay()
var month = today.getMonth();
var year = today.getFullYear()
var date = (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date + ' ' + time;
  $('#today').text(today);
  $('#day').text(day);
  $('#month').text(month);
  $('#year').text(year);
  $('#date').text(date);
  $('#time').text(time);
  $('#dateTime').text(dateTime);
}

setInterval(dateTimeClock, 1000);

答案 1 :(得分:1)

您的时间变量仅被调用一次,因此它们的值不会改变。

尝试从dateTimeClock函数中调用时间变量:

function dateTimeClock() {
var today = new Date();
var day = today.getDay()
var month = today.getMonth();
var year = today.getFullYear()
var date = (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date + ' ' + time;


  $('#today').text(today);
  $('#day').text(day);
  $('#month').text(month);
  $('#year').text(year);
  $('#date').text(date);
  $('#time').text(time);
  $('#dateTime').text(dateTime);
}

setInterval(dateTimeClock, 1000);
相关问题