我需要一些JavaScript帮助

I Need some javascript assistance

本文关键字:JavaScript 帮助      更新时间:2023-09-26

我最近发表了一篇关于这个的帖子,但我把我的问题措辞错误了,然后删除了它,所以我再去一次。

好的,所以我有一个学校项目的网站,这很仓促,因为我们很快就会交付,我们只是添加一些视觉内容,使网站看起来更好,更有吸引力,所以是的,它用于家庭作业/项目。因此,我去某个地方复制了一个时钟代码,我设法开始工作,但我并不完全理解它的每一点。这是代码:

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?

我希望这篇文章和解释更好。

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>

你应该声明所有变量,所以使用:

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声明(函数中的所有变量都应该如此)。