秒杀倒计时用户自定义控件问题
我查了很多资料写了一个秒杀用户自定义控件,先是获取不到服务器时间,我费了九牛二虎之力之后,可以获取到服务器时间,但倒计时不走了。哎……,帮我看一下吧。
<script language="JavaScript" type="text/javascript">
function showTimeLimit<%=this.ClientID %>(str, end, now) {
var now = new Date(now);
前台:
var future = new Date(str);
future -= 1000;
if (now - future < 0) {
var days = (future - now) / 1000 / 60 / 60 / 24;
var dayNum = Math.floor(days);
var hours = (future - now) / 1000 / 60 / 60 - (24 * dayNum);
var houNum = Math.floor(hours);
if (houNum < 10) {
houNum = "0" + houNum;
}
var minutes = (future - now) / 1000 / 60 - (24 * 60 * dayNum) - (60 * houNum);
var minNum = Math.floor(minutes);
if (minNum < 10) {
minNum = "0" + minNum;
}
var seconds = (future - now) / 1000 - (24 * 60 * 60 * dayNum) - (60 * 60 * houNum) - (60 * minNum);
var secNum = Math.floor(seconds);
if (secNum < 10) {
secNum = "0" + secNum;
}
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">距秒杀开始还有:</span><br/><span class=\"style2\">" + dayNum + "</span>天<span class=\"style2\">" + houNum + "</span>小时<span class=\"style2\">" + minNum + "</span>分<span class=\"style2\">" + secNum + "</span>秒";
}
else {
var future = new Date(end);
if (now - future < 0) {
var days = (future - now) / 1000 / 60 / 60 / 24;
var dayNum = Math.floor(days);
var hours = (future - now) / 1000 / 60 / 60 - (24 * dayNum);
var houNum = Math.floor(hours);
if (houNum < 10) {
houNum = "0" + houNum;
}
var minutes = (future - now) / 1000 / 60 - (24 * 60 * dayNum) - (60 * houNum);
var minNum = Math.floor(minutes);
if (minNum < 10) {
minNum = "0" + minNum;
}
var seconds = (future - now) / 1000 - (24 * 60 * 60 * dayNum) - (60 * 60 * houNum) - (60 * minNum);
var secNum = Math.floor(seconds);
if (secNum < 10) {
secNum = "0" + secNum;
}
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">距秒杀结束还有:</span><br/><span class=\"style2\">" + dayNum + "</span>天<span class=\"style2\">" + houNum + "</span>小时<span class=\"style2\">" + minNum + "</span>分<span class=\"style2\">" + secNum + "</span>秒";
}
else {
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">秒杀已结束</span>";
}
}
}
</script>
<span id="TimeLimit1<%=this.ClientID %>">请稍等,正在载入中。。。</span>
<asp:Literal runat="server" ID="lblTime1"></asp:Literal>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication7
{
public partial class Seckill : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.lblTime1.Text = "<script language=\"javascript\" type=\"text/javascript\">setInterval('showTimeLimit" + this.ClientID + "(\"" + StartSeckill + "\",\"" + EndSeckill + "\",\"" + System.DateTime.Now + "\")', 1000);</script>";
}
public DateTime StartSeckill
{
get
{
EnsureChildControls();
return (DateTime)(ViewState["start time"] ?? DateTime.Now);
}
set
{
EnsureChildControls();
ViewState["start time"] = value;
}
}
public DateTime EndSeckill
{
get
{
EnsureChildControls();
return (DateTime)(ViewState["end time"] ?? DateTime.Now);
}
set
{
EnsureChildControls();
ViewState["end time"] = value;
}
}
}
}
<script language="JavaScript" type="text/javascript">
function showTimeLimit<%=this.ClientID %>(str, end, now) {
var now = new Date(now);
前台:
var future = new Date(str);
future -= 1000;
if (now - future < 0) {
var days = (future - now) / 1000 / 60 / 60 / 24;
var dayNum = Math.floor(days);
var hours = (future - now) / 1000 / 60 / 60 - (24 * dayNum);
var houNum = Math.floor(hours);
if (houNum < 10) {
houNum = "0" + houNum;
}
var minutes = (future - now) / 1000 / 60 - (24 * 60 * dayNum) - (60 * houNum);
var minNum = Math.floor(minutes);
if (minNum < 10) {
minNum = "0" + minNum;
}
var seconds = (future - now) / 1000 - (24 * 60 * 60 * dayNum) - (60 * 60 * houNum) - (60 * minNum);
var secNum = Math.floor(seconds);
if (secNum < 10) {
secNum = "0" + secNum;
}
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">距秒杀开始还有:</span><br/><span class=\"style2\">" + dayNum + "</span>天<span class=\"style2\">" + houNum + "</span>小时<span class=\"style2\">" + minNum + "</span>分<span class=\"style2\">" + secNum + "</span>秒";
}
else {
var future = new Date(end);
if (now - future < 0) {
var days = (future - now) / 1000 / 60 / 60 / 24;
var dayNum = Math.floor(days);
var hours = (future - now) / 1000 / 60 / 60 - (24 * dayNum);
var houNum = Math.floor(hours);
if (houNum < 10) {
houNum = "0" + houNum;
}
var minutes = (future - now) / 1000 / 60 - (24 * 60 * dayNum) - (60 * houNum);
var minNum = Math.floor(minutes);
if (minNum < 10) {
minNum = "0" + minNum;
}
var seconds = (future - now) / 1000 - (24 * 60 * 60 * dayNum) - (60 * 60 * houNum) - (60 * minNum);
var secNum = Math.floor(seconds);
if (secNum < 10) {
secNum = "0" + secNum;
}
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">距秒杀结束还有:</span><br/><span class=\"style2\">" + dayNum + "</span>天<span class=\"style2\">" + houNum + "</span>小时<span class=\"style2\">" + minNum + "</span>分<span class=\"style2\">" + secNum + "</span>秒";
}
else {
document.getElementById('TimeLimit1<%=this.ClientID %>').innerHTML = "<span class=\"style1\">秒杀已结束</span>";
}
}
}
</script>
<span id="TimeLimit1<%=this.ClientID %>">请稍等,正在载入中。。。</span>
<asp:Literal runat="server" ID="lblTime1"></asp:Literal>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication7
{
public partial class Seckill : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.lblTime1.Text = "<script language=\"javascript\" type=\"text/javascript\">setInterval('showTimeLimit" + this.ClientID + "(\"" + StartSeckill + "\",\"" + EndSeckill + "\",\"" + System.DateTime.Now + "\")', 1000);</script>";
}
public DateTime StartSeckill
{
get
{
EnsureChildControls();
return (DateTime)(ViewState["start time"] ?? DateTime.Now);
}
set
{
EnsureChildControls();
ViewState["start time"] = value;
}
}
public DateTime EndSeckill
{
get
{
EnsureChildControls();
return (DateTime)(ViewState["end time"] ?? DateTime.Now);
}
set
{
EnsureChildControls();
ViewState["end time"] = value;
}
}
}
}
...全文
相关推荐
OC Control FHXAnimationProgress(进度条).zip
用于拼团,秒杀 进度条
Android倒计时控件:自定义实现与应用
本文还有配套的精品资源,点击获取 简介:在Android开发中,通过自定义控件可以增强用户体验和界面的独特性。本文详细介绍了如何创建一个可自定义的倒计时控件,并应用于多种场景,如在线考试和验证码提示。学习内容包括定义新的View类、实现倒计时逻辑、添加自定义属性和交互反馈,以及通过覆盖onDraw()方法来绘制控件的视觉效果。掌握这些技术将使开发者能够为Android应用设...
vue实现商城秒杀倒计时功能
主要介绍了vue实现商城秒杀倒计时功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
js实现京东秒杀倒计时功能
主要为大家详细介绍了js实现京东秒杀倒计时功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Chrome浏览器 抢购秒杀插件秒杀助手
Chrome浏览器 抢购、秒杀插件(秒杀助手) 可自定义 秒杀辅助插件(减少人肉失误) 任意网站,自定义添加秒杀定时任务 支持可视化选择“秒杀”按钮+自定义选择dom元素 自定义秒杀频率,秒杀次数 秒杀前2分钟提醒 北京时间,本机时间随意选择 北京时间手动校对,准时秒杀 任务实时修改保存


