2016-06-12 4 views
1

私はasp.net、jQuery、C#のカウントダウンタイマーのこのコードを扱っています。0日に停止する代わりにカウントダウンタイマーが入ります00:00:00

私はカウントダウンタイマーのため、この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に関する知識があまりないため、これを修正したいと思っています。助けてください。前もって感謝します。

答えて

0

0以上になると間隔を空ける必要があります。これをCounterTimer関数の最後に追加します。

if(leave <= 0) clearInterval(interv); 
+0

はい、それが0に当たるとして、それは00でストップ素晴らしい作品が、問題は、それはそれは-1日23時59分40秒のようにマイナスに行く00に停止したときに、私は同じページを更新するとつまり上げます。終了日が現在の日付よりも小さい0日00:00:00に置く方法はありますか? –

+0

はい、コードで終了日が現在の日付よりも小さくなることはありません。 CounterTimerメソッドの先頭にif(leave <0)leave = 0のようなロジックを追加する必要があります。 – Mengo

+0

ありがとうございます... –

関連する問題