Javascript 如何在js时钟中添加刷新间隔

Javascript 如何在js时钟中添加刷新间隔,javascript,html,Javascript,Html,尝试这段代码,但我不能设法使秒实时更新,我不是一个开发人员,所以我挣扎与此有任何帮助,在什么问题,使时钟可以实时刷新 功能显示{ var refresh=1000;//刷新率(毫秒) mytime=setTimeout('formatAMPM()',刷新) } document.getElementById(“time”).innerHTML=formatAMPM();显示_c(); 函数formatAMPM(){ var d=新日期(), 秒=d.getSeconds().toString(

尝试这段代码,但我不能设法使秒实时更新,我不是一个开发人员,所以我挣扎与此有任何帮助,在什么问题,使时钟可以实时刷新

功能显示{
var refresh=1000;//刷新率(毫秒)
mytime=setTimeout('formatAMPM()',刷新)
}
document.getElementById(“time”).innerHTML=formatAMPM();显示_c();
函数formatAMPM(){
var d=新日期(),
秒=d.getSeconds().toString().length==1?'0'+d.getSeconds():d.getSeconds(),
分钟数=d.getMinutes().toString().length==1?'0'+d.getMinutes():d.getMinutes(),
小时数=d.getHours().toString().length==1?'0'+d.getHours():d.getHours(),
ampm=d.getHours()>=12?'pm':'am',
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’],
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’];
返回天数[d.getDay()]+'+months[d.getMonth()]+'+d.getDate()++'+d.getFullYear()++'+hours+':'+minutes+':'+seconds;
}

您使用的是setTimeout而不是setInterval。setTimeout将在执行之前等待x个时间量,而setInterval将每x秒执行一次

您还将时间一次性写入dom。我将其移动到setInterval中,以便在获得新时间后更新dom

var timeNode=document.getElementById(“时间”);
功能显示_c(){
var refresh=1000;//刷新率(毫秒)
mytime=setInterval(函数(){
timeNode.innerHTML=formatAMPM();
},刷新)
}
显示_c();
函数formatAMPM(){
var d=新日期(),
秒=d.getSeconds().toString().length==1?'0'+d.getSeconds():d.getSeconds(),
分钟数=d.getMinutes().toString().length==1?'0'+d.getMinutes():d.getMinutes(),
小时数=d.getHours().toString().length==1?'0'+d.getHours():d.getHours(),
ampm=d.getHours()>=12?'pm':'am',
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’],
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’];
返回天数[d.getDay()]+'+months[d.getMonth()]+'+d.getDate()++'+d.getFullYear()++'+hours+':'+minutes+':'+seconds;
}

您使用的是setTimeout而不是setInterval。setTimeout将在执行之前等待x个时间量,而setInterval将每x秒执行一次

您还将时间一次性写入dom。我将其移动到setInterval中,以便在获得新时间后更新dom

var timeNode=document.getElementById(“时间”);
功能显示_c(){
var refresh=1000;//刷新率(毫秒)
mytime=setInterval(函数(){
timeNode.innerHTML=formatAMPM();
},刷新)
}
显示_c();
函数formatAMPM(){
var d=新日期(),
秒=d.getSeconds().toString().length==1?'0'+d.getSeconds():d.getSeconds(),
分钟数=d.getMinutes().toString().length==1?'0'+d.getMinutes():d.getMinutes(),
小时数=d.getHours().toString().length==1?'0'+d.getHours():d.getHours(),
ampm=d.getHours()>=12?'pm':'am',
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’],
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’];
返回天数[d.getDay()]+'+months[d.getMonth()]+'+d.getDate()++'+d.getFullYear()++'+hours+':'+minutes+':'+seconds;
}

您要查找的是设置间隔而不是设置超时。代码有点混乱,但这里有一个快速修复:

var refresh=1000;//刷新率(毫秒)
设置间隔(显示、刷新);
函数显示_c(){
document.getElementById(“time”).innerHTML=formatAMPM()
}
函数formatAMPM(){
var d=新日期(),
秒=d.getSeconds().toString().length==1?'0'+d.getSeconds():d.getSeconds(),
分钟数=d.getMinutes().toString().length==1?'0'+d.getMinutes():d.getMinutes(),
小时数=d.getHours().toString().length==1?'0'+d.getHours():d.getHours(),
ampm=d.getHours()>=12?'pm':'am',
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’],
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’];
返回天数[d.getDay()]+'+months[d.getMonth()]+'+d.getDate()++'+d.getFullYear()++'+hours+':'+minutes+':'+seconds;
}

您要查找的是设置间隔而不是设置超时。代码有点混乱,但这里有一个快速修复:

var refresh=1000;//刷新率(毫秒)
设置间隔(显示、刷新);
函数显示_c(){
document.getElementById(“time”).innerHTML=formatAMPM()
}
函数formatAMPM(){
var d=新日期(),
秒=d.getSeconds().toString().length==1?'0'+d.getSeconds():d.getSeconds(),
分钟数=d.getMinutes().toString().length==1?'0'+d.getMinutes():d.getMinutes(),
小时数=d.getHours().toString().length==1?'0'+d.getHours():d.getHours(),
ampm=d.getHours()>=12?'pm':'am',
月份=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’],
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’];
返回天数[d.getDay()]+'+months[d.getMonth()]+'+d.getDate()++'+d.getFullYear()++'+hours+':'+minutes+':'+seconds;
}

您正在显示的大部分内容都可以使用Date API获得。您可能不需要计算整个日期。根据我的推断,您需要日期字符串,后跟没有时区信息的时间字符串

函数timeRefresh(){
设置间隔(()=>{
const now=新日期();
document.getElementById('time').innerText=now.toDateString()+''+now.toTimeString().split('')[0]
}, 1000)
};
timeRefresh();


您正在显示的大部分内容都可以使用Date API获得。您可能不需要计算整个da