我最近发了一篇关于此事的帖子,但是我把我的问题写错了,然后将其删除,以便我再去一次。
好的,所以我有一个学校项目的网站,它非常仓促,因为我们很快就要交付,我们只是添加一些视觉材料,使网站看起来更好,更有吸引力,所以是的,它用于家庭作业/项目。因此,我去复制了一个时钟码,我设法开始工作,我不完全理解它的每一点。 这是代码:
tday =new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
tmonth=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
function GetClock(){
d = new Date();
nday = d.getDay();
nmonth = d.getMonth();
ndate = d.getDate();
nyear = d.getYear();
nhour = d.getHours();
nmin = d.getMinutes();
nsec = d.getSeconds();
if(nyear<1000) nyear=nyear+1900;
if(nhour == 0) {ap = " AM";nhour = 12;}
else if(nhour <= 11) {ap = " AM";}
else if(nhour == 12) {ap = " PM";}
else if(nhour >= 13) {ap = " PM";nhour -= 12;}
if(nmin <= 9) {nmin = "0" +nmin;}
if(nsec <= 9) {nsec = "0" +nsec;}
document.getElementById('clockbox').innerHTML=""+tday[nday]+", "+tmonth[nmonth]+" "+ndate+", "+nyear+" "+nhour+":"+nmin+":"+nsec+ap+"";
setTimeout("GetClock()", 1000);
}
window.onload=GetClock;
<h:body onload="updateClock(); setInterval('updateClock()', 1000 )">
<h5 id="clockbox">x</h5>
好的,既然我的javascript经验非常糟糕,我不理解IF句子,就像1000和1900在这种场景中的含义一样? AP来自哪里?在nmin和nsec中,我理解发生了什么,但无法解释......还有时钟盒,在这种情况下innerHTML是什么?
我希望这篇文章和解释更好......
答案 0 :(得分:0)
setInterval('updateClock()', 1000 )
表示每隔1000毫秒调用updateClock()
方法。
以下代码将24小时表示法转换为12小时表示法。
if(nhour == 0) { // if the current time is 00:xx
ap = " AM";
nhour = 12;
} else if(nhour <= 11) { // if it's before 12
ap = " AM";
} else if(nhour == 12) { // if the current time is 12:xx
ap = " PM";
} else if(nhour >= 13) { // if it's passed 12
ap = " PM";
nhour -= 12;
}
要添加前导零,请输入以下代码:
if(nmin <= 9) {
nmin = "0" + nmin;
}
if(nsec <= 9) {
nsec = "0" + nsec;
}
请注意,使用这些分配时,类型会发生变化。
要在网站上实际显示时钟:
document.getElementById('clockbox').innerHTML= "something";
但是对于这段代码,HTML中需要有id='clockbox'
的元素,因此以下HTML代码放在页面的某个位置:
<h5 id="clockbox">x</h5>
答案 1 :(得分:0)
您应该声明所有变量,因此请使用:
var d = new Date();
var nday = d.getDay();
var nmonth = d.getMonth();
...
等等。
我不理解IF句子
以下内容:
if (nhour == 0) {
ap = " AM";
nhour = 12;
} else if (nhour <= 11) {
ap = " AM";
} else if (nhour == 12) {
ap = " PM";
} else if (nhour >= 13) {
ap = " PM";
nhour -= 12;
}
使用am / pm将24小时时间转换为12小时时间。它可以替换为:
var ap = nhour < 12? ' AM' : ' PM';
nhour = nhour % 12 || 12;
就像1000和1900在这种场景中的含义
getYear 函数在20世纪(1900年至1999年)多年回归两位数。您可以使用 getFullYear 来避免这种情况,它会返回当年的所有数字:
var nyear = d.getFullYear();
并删除if(nyear<1000) nyear=nyear+1900;
语句。
AP来自哪里?
我认为你的意思是 ap 。它是一个未声明的变量,它应该用var
声明(与函数中的所有变量一样)。