2014-09-27 88 views
0

我是在过去几个月里一直在学习Jscript的新手。我遇到了以下函数,它计算今天和指定日期之间的差距。不过,我想要将这个函数转换为多个日期(例如,当var eventuate是1/2/2011,当它的2/2/2012等)。任何人都可以请赐教如何实现这一目标?计算天数之间的差距

***********更新21/10/2014 ********

我想我可能已经困惑了很多人,我没有得到答案我在寻找。 我想重申一下这个问题:该脚本从一个设定日期开始统计到今天为止的天数,并将其显示为一个计时器。但是,我现在只能显示一行计时器,但我一直在想办法显示多个计时器来计算不同的日期。 我想过使用循环,但我在JavaScript环境中失败。任何人都可以请再帮我一次吗? 大加赞赏,艾弗森

<script language="JavaScript"> 
function setDate(){ 

    var eventdate = new Date("May 1, 1996") 
    var now = new Date(); 

    count=Math.floor((now.getTime()-eventdate.getTime())/1000); 

    document.clock.secs.value = count%60; 
    count = Math.floor(count/60); 
    document.clock.mins.value = count%60; 
    count = Math.floor(count/60); 
    document.clock.hours.value = count%24; 
    count = Math.floor(count/24); 

    if (count >= 365){ 
     document.clock.days.value = count - 365*Math.floor(count/365); 
    } 
    else{ 
     document.clock.days.value = count 
    } 
    count=Math.floor(count/365); 
    document.clock.years.value=count 

    hour = new Number(document.clock.hours.value) 
    min = new Number(document.clock.mins.value) 
    sec = new Number(document.clock.secs.value) 
    day = new Number(document.clock.days.value) 
    year = new Number(document.clock.years.value) 
    timer() 

} 

function timer(){ 

    if ((min < 10) && (min != "00")){ 
      dismin = "0" + min 
    } 
    else{ 
      dismin = min 
    } 

    if ((hour < 10) && (hour != "00")){ 
      dishour = "0" + hour 
    } 
    else{ 
      dishour = hour 
    } 

    dissec = (sec < 10) ? sec = "0" + sec : sec 
    document.clock.secs.value = dissec 
    document.clock.mins.value = dismin 
    document.clock.hours.value = dishour 
    document.clock.days.value = day 
    document.clock.years.value = year 

    if (sec < 59){ 
     sec++ 
    } 

    else{ 
     sec = "0" 
     min++ 
     if (min > 59){ 
      min = "00" 
      hour++ 
      if (hour > 23){ 
       hour = "0" 
       day++ 
       if (day >364){ 
        day = "0" 
        year++ 
       } 
      } 
     } 

    } 



      window.setTimeout("timer()",1000) 
} 
// --> 
</script> 


<body onLoad="setDate()"> 


<form name="clock"> 
<table border=3> 

<tr> 
<td>Years:</td> 
<td>Days:</td> 
<td>Hours:</td> 
<td>Mins:</td> 
<td>Secs:</td> 
</tr> 


<tr> 
<td><input name="years" size="4"></td> 
<td><input name="days" size="4"></td> 
<td><input name="hours" size="4"></td> 
<td><input name="mins" size="4"></td> 
<td><input name="secs" size="4"></td> 
</tr> 
</table></form> 
+0

我不明白你的问题。请重新说明。 – chris97ong 2014-09-27 05:51:55

+0

我想我可能会困惑很多人,我没有得到我正在寻找的答案。我想重新说明这个问题:该脚本计算从设定日期到今天的天数,并将其显示为计时器。但是,我现在只能显示一行计时器,但我一直在想办法显示多个计时器来计算不同的日期。我想过使用循环,但我失败的JavaScript环境。任何人都可以请再帮我一次吗?非常感谢,艾弗森 – 2014-10-21 03:23:57

回答

0

更改此:

function setDate(){ 

    var eventdate = new Date("May 1, 1996") 
    var now = new Date(); 

要这样:

function setDate(dateNumber1, dateNumber2){ 

和与其说这是这样的:

setDate(); 

你会打电话它就像一样是:

var dateNumber1 = new Date("May 1, 1996"); 
var dateumber2 = new Date("May 2, 2011"); 
setDate(dateNumber1, dateNumber2); 

显然,从“EVENTDATE”和“现在”到“dateNumber1”和“dateNumber2”中的setDate函数内改变变量的名字,但逻辑应该是相同的。

+0

我确实看到你打电话给onLoad,但你最好有几个文本框并接受日期,然后有一个按钮来计算差异并显示它。 – 2014-09-27 05:58:17

+0

还是做它的快速和肮脏的方式,只需修改变量assingments在函数的顶部:) 功能的setDate({ VAR EVENTDATE =新的日期(“1996年5月1日”)现在 VAR =新日期(“2011年5月2日”); – 2014-09-27 05:59:32

+0

我想我可能会困惑很多人,我没有得到我正在寻找的答案。我想重新说明这个问题:该脚本计算从设定日期到今天的天数,并将其显示为计时器。但是,我现在只能显示一行计时器,但我一直在想办法显示多个计时器来计算不同的日期。我想过使用循环,但我失败的JavaScript环境。任何人都可以请再帮我一次吗?非常感谢,艾弗森 – 2014-10-21 03:23:33

0

而不是所有这些,你可以很容易地采取日期和减去它的时间戳。
你会得到这两天之间的秒数,在这秒的帮助下,你可以计算出日子。