如何用Javascript在午夜或基本上在新的一天更新当前日期
因此,我有网络手表什么应该工作24/7。它显示数字时间和当前日期。没有别的了 我的问题是,当时间超过午夜时,当天不会更新,我需要重新启动整个应用程序 我试图为showDate()函数添加setTimeout,但没有帮助。我在考虑在数日内移动+1。还有更有效的吗如何用Javascript在午夜或基本上在新的一天更新当前日期,javascript,html,Javascript,Html,因此,我有网络手表什么应该工作24/7。它显示数字时间和当前日期。没有别的了 我的问题是,当时间超过午夜时,当天不会更新,我需要重新启动整个应用程序 我试图为showDate()函数添加setTimeout,但没有帮助。我在考虑在数日内移动+1。还有更有效的吗 function showdate(){ var date = new Date(); var day = date.getDay(); var name = ["Sunday","Monday","Tuesd
function showdate(){
var date = new Date();
var day = date.getDay();
var name = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][day];
document.getElementById("date").textContent = name;
}
showdate();
function showTime(){
var date = new Date();
var h = date.getHours(); // 0 - 23
var m = date.getMinutes(); // 0 - 59
var s = date.getSeconds(); // 0 - 59
var session = "AM";
if(h === 0){
h = 24;
}
/*if(h > 12){
h = h - 12;
session = "PM";
}*/
h = (h < 10) ? "0" + h : h;
m = (m < 10) ? "0" + m : m;
s = (s < 10) ? "0" + s : s;
var time = h + ":" + m + ":" + s;
/*var sess = session;*/
document.getElementById("MyClockDisplay").innerText = time;
document.getElementById("MyClockDisplay").textContent = time;
/* document.getElementById("PM").textContent = sess;*/
setTimeout(showTime, 1000);
}
showTime();
函数showdate(){
变量日期=新日期();
var day=date.getDay();
var名称=[“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”][日期];
document.getElementById(“日期”).textContent=名称;
}
showdate();
函数showTime(){
变量日期=新日期();
var h=date.getHours();//0-23
var m=date.getMinutes();//0-59
var s=date.getSeconds();//0-59
var session=“AM”;
如果(h==0){
h=24;
}
/*如果(h>12){
h=h-12;
session=“PM”;
}*/
h=(h<10)-“0”+h:h;
m=(m<10)-“0”+m:m;
s=(s<10)?“0”+s:s;
变量时间=h+“:”+m+“:”+s;
/*var-sess=会话*/
document.getElementById(“MyClockDisplay”).innerText=时间;
document.getElementById(“MyClockDisplay”).textContent=时间;
/*document.getElementById(“PM”).textContent=sess*/
设置超时(显示时间,1000);
}
showTime();
谢谢你的建议。你的代码不会自动执行。你应该定期这样称呼它:
function showdate(){
var date = new Date();
var day = date.getDay();
var name = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][day];
document.getElementById("date").textContent = name;
console.log('show date');
}
setInterval(showdate, 1000)
这样,客户端将每秒获取一次新日期(其中1000
以毫秒为单位)。但是,您可以将时间更改为适合您需要的任何值(请记住,它在ms
)
你也可以看看。
函数showdate(){
变量日期=新日期();
var day=date.getDay();
var名称=[“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”][日期];
document.getElementById(“日期”).textContent=名称;
console.log(“显示日期”);
}
设置间隔(显示日期,1000)
功能检查时间(i){
如果(i<10){
i=“0”+i;
}
返回i;
}
函数startTime(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
//在数字前面加一个零你可以做:
//每天12点显示日期
函数showdateEveryDayAt12(){
setInterval(函数(){
showdate();
}, 86400000);
}
//在下一个12点显示日期,并调用showdateEveryDayAt12()
函数showdateAtNext12(){
var now=新日期();
var millissecondsto12=新日期(now.getFullYear(),now.getMonth(),now.getDate(),12,0,0)-now;
setTimeout(函数(){
showdate();
showdateEveryDayAt12();
},毫秒至12);
}
//放映日期
函数showdate(){
变量日期=新日期();
var day=date.getDay();
var名称=[“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”][日期];
document.getElementById(“日期”).textContent=名称;
}
//现在显示日期,下一个12点显示日期,每天12点显示日期
showdate();
showdateAtNext12();
为什么不定期重新运行showdate
?@VLAZ不应该设置setInterval/setTimetout吗?重新运行是什么意思?@Cabry您会使用setInterval而不是setTimeout,间隔为1000显示当前时间?时间更新功能在setInterval中吗?您需要检查这个函数的答案showdateAtNext12()
将在下一个12
执行。这将调用函数showdateEveryDayAt12()
很抱歉我的混淆,但是当我将12个值更改为24以使用24小时格式时,它将在下一个24小时执行,对吗?是的,这是我们的理想选择。@Cabry很乐意提供帮助。@Cabry