Javascript 使用jquery更新时间跨度

Javascript 使用jquery更新时间跨度,javascript,jquery,html,Javascript,Jquery,Html,我有一个小脚本,它应该用当前时间更新一个跨度 此脚本在setInterval之前工作,但在setInterval期间不工作 HTML: id为time的span不会更改时间。您也需要更新dt对象。内部的getHours()和getMinutes()函数在setInterval()之前初始化的dt对象上工作。 如果不重新初始化dt它将采用缓存对象的日期 setInterval(function(){ console.log("interval"); dt = new Date()

我有一个小脚本,它应该用当前时间更新一个跨度

此脚本在setInterval之前工作,但在setInterval期间不工作

HTML:


id为time的span不会更改时间。

您也需要更新
dt
对象。内部的
getHours()
getMinutes()
函数在
setInterval()之前初始化的
dt
对象上工作。 如果不重新初始化
dt
它将采用缓存对象的日期

setInterval(function(){
    console.log("interval");

    dt = new Date();                //here!

    time = dt.getHours() + ":" + dt.getMinutes();
    console.log(time)
    $("#time").text(time);
},5000);


完整代码:

$(document).ready(function(){
    var dt = new Date();
    var time = dt.getHours() + ":" + dt.getMinutes();
    $("#time").text(time);
    setInterval(function(){
        console.log("interval");
        dt = new Date();
        time = dt.getHours() + ":" + dt.getMinutes();
        $("#time").text(time);
    },5000);
});  

每次都需要设置
dt
,日期对象不会一直更新时间。它将保留在创建时

请参阅此代码和此


我会使用momente.js或一些库,这对于setIntervalthnx来说太原始了,现在可以使用了,我只需要知道如何添加一个前导0,如果它是beneith 10:(看这里,基本上就是一直添加零,然后使用slice获取最后2个字符,你总能得到你想要的。
setInterval(function(){
    console.log("interval");

    dt = new Date();                //here!

    time = dt.getHours() + ":" + dt.getMinutes();
    console.log(time)
    $("#time").text(time);
},5000);
$(document).ready(function(){
    var dt = new Date();
    var time = dt.getHours() + ":" + dt.getMinutes();
    $("#time").text(time);
    setInterval(function(){
        console.log("interval");
        dt = new Date();
        time = dt.getHours() + ":" + dt.getMinutes();
        $("#time").text(time);
    },5000);
});  
var dt = new Date();
var time = dt.getHours() + ":" + dt.getMinutes();

$("#time").text(time);

setInterval(function(){

    dt = new Date();
    time = dt.getHours() + ":" + dt.getMinutes();

    $("#time").text(time);

},5000);