1

asp.net、jQuery、C#でカウントダウンタイマーのこのコードを扱っています。

カウントダウン タイマー用の次の jQuery コードがあります。

<div id="timelabel"></div>
<script type="text/javascript">
var leave = <%=seconds %>;
CounterTimer();

var interv = setInterval(CounterTimer,1000);

function CounterTimer()
{
    var day = Math.floor(leave / ( 60 * 60 * 24))
    var hour = Math.floor(leave / 3600) - (day * 24)
    var minute = Math.floor(leave / 60) - (day * 24 *60) - (hour * 60)
    var second = Math.floor(leave) - (day * 24 *60*60) - (hour * 60 * 60) -(minute*60)

    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second<10 ? "0" + second : second;

    var remain = day + " days   " + hour + ":" + minute + ":" + second;
    leave = leave - 1;

    document.getElementById("timelabel").innerText = remain;
}
</script>

そして、.cs であるコード ビハインド ファイルから終了日を渡しています。

public double seconds;

protected void Page_Load(object sender, EventArgs e)
{
    seconds = (GetEndTime() - GetStartTime()).TotalSeconds;
}

private DateTime GetStartTime()
{
    return DateTime.Now;
}

private DateTime GetEndTime()
{
    return new DateTime(2016, 6, 12, 11, 57, 00); //end date yr-month-day hr-mnt-sec
}

このタイマーが 0 日 00:00:00 に達しても停止しないという問題に直面しています。それは -1 日 23:48:20 のようにそれを超えます。jQueryについてあまり知識がないので、これを修正したいのですが、かなり難しいと感じているので、誰かが必要な変更を案内してくれますか? 助けてください。前もって感謝します。

4

1 に答える 1

0

インターバルが0以上になったらクリアする必要があります。これを CounterTimer 関数の一番下に追加します。

if(leave <= 0) clearInterval(interv);
于 2016-06-12T06:52:05.633 に答える