在不使用Javascript刷新页面的情况下更新时间
我正在构建一个应用程序,它可以显示当前时间,而无需刷新。 我正在调用下面的时间,但当我显示它时,我必须刷新页面以更新时间。如何持续更新时间在不使用Javascript刷新页面的情况下更新时间,javascript,Javascript,我正在构建一个应用程序,它可以显示当前时间,而无需刷新。 我正在调用下面的时间,但当我显示它时,我必须刷新页面以更新时间。如何持续更新时间 function GetTime(){ var today = new Date(); var hour = today.getHours(); var minute = today.getMinutes(); if (hour>=12){ //Adding endings
function GetTime(){
var today = new Date();
var hour = today.getHours();
var minute = today.getMinutes();
if (hour>=12){ //Adding endings
suffix = "P.M.";}
else{
suffix = "A.M.";}
minute = addZero(minute); //Call addZero function
hour = removeMilitary(hour); //Call removeMilitary Function
var fullTime = hour + ":" + minute + " " + suffix; //Combine hour minute and the suffix
function addZero(number){
if (number<10){
number = "0" + number;
}
return number;
}
function removeMilitary(hour){ //This function can be removed if desired by user.
if (hour > 0 && hour <= 12) {
hour = "" + hour;
} else if (hour > 12) {
hour = "" + (hour - 12);
} else if (hour == 0) {
hour= "12";
}
return hour;
}
return fullTime;
}
函数GetTime(){
var today=新日期();
var hour=today.getHours();
var minute=today.getMinutes();
如果(小时>=12){//添加结尾
后缀=“P.M.”;}
否则{
后缀=“A.M.”;}
分钟=addZero(分钟);//调用addZero函数
小时=removeMilitary(小时);//调用removeMilitary函数
var fullTime=hour+“:“+minute+”“+后缀;//将hour-minute和后缀组合起来
函数addZero(数字){
如果(0号和12小时){
小时=”+(小时-12);
}否则,如果(小时==0){
小时=“12”;
}
返程时间;
}
全职返回;
}
setInterval(GetTime,1000)将每秒(1000毫秒)调用函数以获取时间。你没有展示你是如何把时间放在页面上的,所以你也需要把它结合起来 setInterval(GetTime,1000)将每秒(1000毫秒)调用函数以获取时间。你没有展示你是如何把时间放在页面上的,所以你也需要把它结合起来 Javascript有一个方法
通过每1000毫秒运行一次程序,您可以每秒获得一次时间:
setInterval(GetTime, 1000);
//if you incorporate updating the html
//within the getTime function
或
为什么1000毫秒的设置间隔不是很准确
问题是,除非您在第二秒开始设置间隔,否则您的程序不会在第二秒更改第二秒。例如,我建议您通过将间隔调整为每100毫秒来获得更精确的值。然后它会每100毫秒更新一次,这意味着你的时钟最多只能落后十分之一秒
更好的解决方案
每100毫秒设置一次间隔是可以的,但是如果你想获得更高的精度,将其设置为10毫秒并不一定是最好的选择,因为每10毫秒重复一次任务对计算机来说是一个相当大的负担。您还可以使用查找到下一秒的毫秒数,然后使用方法等待到下一秒,然后启动设置超时。您仍然会有一些计算延迟(从它获得毫秒数到下一秒到它开始设置超时之间的时间量),但这可能比100毫秒小得多。Javascript有一个方法
通过每1000毫秒运行一次程序,您可以每秒获得一次时间:
setInterval(GetTime, 1000);
//if you incorporate updating the html
//within the getTime function
或
为什么1000毫秒的设置间隔不是很准确
问题是,除非您在第二秒开始设置间隔,否则您的程序不会在第二秒更改第二秒。例如,我建议您通过将间隔调整为每100毫秒来获得更精确的值。然后它会每100毫秒更新一次,这意味着你的时钟最多只能落后十分之一秒
更好的解决方案
每100毫秒设置一次间隔是可以的,但是如果你想获得更高的精度,将其设置为10毫秒并不一定是最好的选择,因为每10毫秒重复一次任务对计算机来说是一个相当大的负担。您还可以使用查找到下一秒的毫秒数,然后使用方法等待到下一秒,然后启动设置超时。您仍然会有一些计算延迟(从它获得毫秒数到下一秒到它开始设置超时之间的时间量),但这可能比100毫秒小得多。更新我忘记了
设置间隔
,但其他人已经指出了它,所以把这两个答案混合在一起,你就完蛋了
看和看
类似于函数末尾的以下代码段(而不是returnfulltime
)应该可以工作:
...
var myElement = documentGetElementById('mydiv');
myElement.innerHTML = fulltime;
...
当然,您需要使用
或您选择的任何内容来定义一些HTML元素 更新我忘记了设置间隔
,但其他人已经指出了它,所以混合两个答案就完成了
看和看
类似于函数末尾的以下代码段(而不是returnfulltime
)应该可以工作:
...
var myElement = documentGetElementById('mydiv');
myElement.innerHTML = fulltime;
...
当然,您需要使用
或您选择的任何内容来定义一些HTML元素 我假设您将使用setInterval()
函数。
只需在点击按钮时添加此项
setInterval(function(){Document.getElementById("div").innerHTML = getTime},1000);
我假设您将使用
setInterval()
函数。
只需在点击按钮时添加此项
setInterval(function(){Document.getElementById("div").innerHTML = getTime},1000);
给出的信息不足以猜测问题所在。请上传所有相关代码。请也给你HTML代码,谢谢。提供的信息不足以猜测问题所在。请上传每一个相关的代码请也给你HTML代码,谢谢DownVote,因为你没有回答OP想要的。答案应该是不断更新值并将其分配给DOM的部分。这就是为什么包括我在内的人问DOM或其他信息的原因。我假设OP有一些HTML,我仍然认为否决票是不公平的,但是不管是什么,我给了你否决票,但同时,你也编辑了你的帖子。所以,没有理由再让我对你投反对票了。编辑一些东西,这样我就可以收回:)人们应该收回他们的反对票,一旦帖子被更改,反对票不应该是“我不喜欢你的答案,所以否定点”。它应该总是灵活的。向下投票,因为你没有回答OP的要求。答案应该是不断更新值并将其分配给DOM的部分。这就是为什么包括我在内的人问DOM或其他信息的原因。我想OP有一些HTM