2014-09-27 89 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

而不是所有這些,你可以很容易地採取日期和減去它的時間戳。
你會得到這兩天之間的秒數,在這秒的幫助下,你可以計算出日子。