计算天数之间的差距

时间:2014-09-27 05:33:54

标签: javascript

我是一位在过去几个月里一直在学习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>

2 个答案:

答案 0 :(得分: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);

显然,在&#34; eventDate&#34;中更改setDate函数中变量的名称。和&#34;现在&#34;到&#34; dateNumber1&#34;和&#34; dateNumber2&#34;,但逻辑应该是相同的。

答案 1 :(得分:0)

而不是所有这些,您可以轻松地为两个日期采用时间戳并减去它 您将获得两天之间的秒数,并且在此秒的帮助下,您可以计算天数。