javascript 使用setInterval显示时间

njthzxwz  于 2022-12-10  发布在  Java
关注(0)|答案(4)|浏览(162)

我试图显示每秒发生的最新日期和时间,但输出保持不变。我不想使用jquery,因为我正在学习如何用javascript来做这件事。display函数在onload时被body调用。

function display()
{
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    setInterval(function() {

    document.write(output);

    }, 3000);
}
pu82cl6c

pu82cl6c1#

试试这个:

function display()
{
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    document.write(output);
}
setInterval(display, 3000);
  • sidenote:* document.write是您想要的吗?您可能想要在<span><div>中显示它。在这种情况下,document.getElementById('someId').innerHTML会有帮助。
  • 另一个侧面:* setInterval(display, 3000);setInterval('display();', 3000);是不同的。请参阅此answer以了解更多详细信息。
lx0bsm1f

lx0bsm1f2#

您需要在timer函数中进行计算,如下所示:

function display()
{
  setInterval(function() {
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    document.write(output);

  }, 3000);
}
display();
z9smfwbn

z9smfwbn3#

一个变量的值是静态的,所以如果你不改变 outout 的值,它就保持不变。
因此,您需要计算间隔回调内的日期,然后显示它。

w6mmgewl

w6mmgewl4#

import React from 'react'
import './App.css'

function App(){
 const [exactTime, set] = React.useState()
 function p ( ) {
    set (() => {
      const date = new Date ()

      return (
        date.getSeconds()
       )
    });

  }
  setInterval(p, 1000)

  return (

    <div className="App">

      <p>
        Time is { exactTime }
      </p>

    </div>
  );

}

相关问题