2016-06-12 7 views
1

Ich habe mit diesem Code für Countdown-Timer in asp.net, jQuery, C#.Countdown-Timer geht in minus anstatt an 0 Tagen zu stoppen 00:00:00

Ich habe diesen jQuery-Code für den Countdown-Timer:

<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> 

Und ich Übergang von Code hinter Datei Enddatum, die CS- ist:

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 
} 

Ich bin mit einem Problem konfrontiert, dass diese Timer wird nicht aufhören, wenn es 0 Tage 00:00:00 trifft es geht darüber hinaus wie -1 Tage 23:48:20. Ich möchte das beheben, da ich nicht so viel Wissen über jQuery habe. Ich finde es ziemlich schwierig, also kann mich jemand mit den notwendigen Modifikationen leiten? Bitte helfen Sie. Vielen Dank im Voraus.

Antwort

0

Sie müssen das Intervall löschen, nachdem es auf 0 oder darüber hinaus geht. Fügen Sie dies am Ende Ihrer CounterTimer-Funktion hinzu.

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

ja, es funktioniert gut es auf 00 zu stoppen, da es 0 trifft aber das Problem auf, das ist, wenn ich die gleiche Seite zu aktualisieren, wenn es auf 00 stoppt er in minus wie -1 Tagen 23.59.40 geht. Gibt es eine Möglichkeit, es auf 0 Tage 00:00:00 zu setzen, wenn das Enddatum kleiner ist als das aktuelle Datum? –

+0

Ja, Ihr Code verhindert nicht, dass das Enddatum kleiner als das aktuelle Datum wird. Sie müssen eine Logik hinzufügen wie if (leave <0) leave = 0 am Anfang Ihrer CounterTimer-Methode. – Mengo

+0

vielen dank ... –

Verwandte Themen