倒数计时器倒数,而不是在 0 天停止 00:00:00
Countdown timer going in minus instead of stopping on 0 days 00:00:00
我在 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 了解不多,我发现这很困难,所以有人可以指导我进行必要的修改吗?请帮忙。提前谢谢你。
您需要在间隔达到或超过 0 后清除间隔。将其添加到您的 CounterTimer 函数的底部。
if(leave <= 0) clearInterval(interv);
我在 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 了解不多,我发现这很困难,所以有人可以指导我进行必要的修改吗?请帮忙。提前谢谢你。
您需要在间隔达到或超过 0 后清除间隔。将其添加到您的 CounterTimer 函数的底部。
if(leave <= 0) clearInterval(interv);