这是我在JavaScript上的第一次尝试,我一直在尝试在我的网站上设置一个实时时钟,我得到了时钟以显示我想要的时间,但是我无法通过超时命令使其每秒自动化。我在这里做错了什么?
ps。如果某人有一个好主意如何改变UTC时间的时间,那将不胜感激,但是我仍然在为我的自我努力。
谢谢。
<!DOCTYPE html>
<html>
<head>
<script>
var date=new Date();
var format = "YYYY-MMM-DD DDD";
document.write(dateConvert(date,format));
function dateConvert(dateobj,format){
var year = dateobj.getFullYear();
var month= ("0" + (dateobj.getMonth()+1)).slice(-2);
var date = ("0" + dateobj.getDate()).slice(-2);
var hours = ("0" + dateobj.getHours()).slice(-2);
var minutes = ("0" + dateobj.getMinutes()).slice(-2);
var seconds = ("0" + dateobj.getSeconds()).slice(-2);
var day = dateobj.getDay();
var months = ["1","2","3","4","5","6","7","8","9","10","11","12"];
var converted_date = "";
switch(format){
case "YYYY-MM-DD":
converted_date = year + "-" + month + "-" + date;
break;
case "YYYY-MMM-DD DDD":
converted_date = year + "-" + months[parseInt(month)-1] + "-" + date
+ " " + hours + ":" + minutes + ":" + seconds;
break;
}
return converted_date;
}
</script>
</head>
<body onload="dataConvert()",timeout(dateConverter,1000)>
</body>
</html>
因此,有一个称为setInterval的不错的JavaScript函数(如Sheplu所说的那样。
因此,您几乎可以删除Onload对象和超时并使用SetInterval。
看起来像这样:
setInterval(function(){
var date = new Date();
var format = "YYYY-MMM-DD DDD";
dateConvert(date,format)
}, 1000);
当然,您必须进行一些微调,例如直接在间隔中的var格式,不是最好的,因为它不会改变。
在此处查看脚本:https://jsfiddle.net/cv8wlgux/
使用的站点:Mozilladev,W3Schools
我使用Moment.js库简化了请求。时钟设置为间隔以每1000ms(1秒(更新一次。
setInterval(function(){
document.getElementById("clock").innerText = moment().format('MMMM Do YYYY, h:mm:ss a');
},1000)
http://plnkr.co/edit/edkbojuse1a8aytzax7g?p=preview
setInterval(function(){
document.getElementById("clock").innerText = moment.utc().format('MMMM Do YYYY, h:mm:ss a');
},1000)
我会以以下方式做
function updateTimer() { "put your code to format the output here" }
setInterval("updateTimer()", 500)
我将每1/2秒(或更频繁地(进行一次间隔计时器射击,
因为给定时间间隔仅是近似值。如果您使用1000 ms
呼叫之间的时间可能在990-1010 ms(或更宽(
之间您可能会在几秒钟内丢失或复制活动。
如果您经常打电话给它,则可以将当前时间降至从日期变量开始的毫秒,并确定您每次要做什么。
使用setInterval函数。https://developer.mozilla.org/fr/docs/web/api/windowtimers/setInterval
不确定,应该尝试一下,但是我认为,如果您保持页面打开,则每小时/天可以放一些秒。因此,您应该有时检查新时间并更新所有内容