我需要一些JavaScript帮助

时间:2014-12-03 22:37:47

标签: javascript

我最近发了一篇关于此事的帖子,但是我把我的问题写错了,然后将其删除,以便我再去一次。

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

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是什么?

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

2 个答案:

答案 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声明(与函数中的所有变量一样)。