求购物“秒杀”写法 如何获取服务器时间
开发一个购物网站 现在老板让添加秒杀 不知道如何 获取服务器时间 如何下手 思路不清晰 具体秒杀如何实现 还请各位说说 最好有代码 如果没有了解的说说如何实现最好 也是非常感谢的
[解决办法]
点击按钮,触发 onclick事件。。。
就这么简单。。。
当服务器到达设定时间,开启添加。(就是一个if判断,当前 服务器时间是否 = 设定时间。)
如果到了。
就是点击一个按钮,添加一条记录。当添加条数达到数目上限,添加设置无效 (这里也是一个判断)。
(1个ip 1分钟内,只记录1条数据...)
[解决办法]
你用C#代码取得的时间 就是服务器时间呀
[解决办法]
后台 DateTime.Now 就是服务器时间。再根据你的那 秒杀 结束时间,计算出余下秒数。 返回到界面,通过脚本创建倒计时。当脚本倒计时 为 0 秒,返回至服务器端,重新计算 余下秒秒数,如果为 小于 0,则结束所谓的秒杀倒计时。(开启秒杀,可以通过同样的逆向思路)
[解决办法]
3楼正解 网上JS显示 倒计时的蛮多的 你的服务器时间就是你调的系统时间
[解决办法]
http://topic.csdn.net/u/20110122/15/7ca6837f-e0f4-4414-87b9-571bb1a63a4a.html
[解决办法]
- C# code
if (DateTime.Compare(pt.EndTime, DateTime.Now) > 0)//时间对比 { //pt.EndTime就是你数据库设置的结束时间 //秒杀成功的处理代码 } { ShowMessageBox("活动已结束,请关注下次活动!"); }
[解决办法]
- HTML code
$(document).ready(function() { //电子电器 var CountdownTImeE = $("input[id*=txtElectronCountdownTime]").val(); //倒计时 if (CountdownTImeE != "" && CountdownTImeE != null) { var year = CountdownTImeE.split(' ')[0].split('-')[0]; //年 var month = CountdownTImeE.split(' ')[0].split('-')[1]; //月 var day = CountdownTImeE.split(' ')[0].split('-')[2]; //日 var hour = CountdownTImeE.split(' ')[1].split(':')[0]; //时 var min = CountdownTImeE.split(' ')[1].split(':')[1]; //分 var second = CountdownTImeE.split(' ')[1].split(':')[2]; //秒 var time = month + "/" + day + "/" + year + " " + hour + ":" + min + ":" + second; var endtime = new Date(time); //时间格式:"7/21/2010 09:48:00" var nowtime = new Date(); var maxtime = (endtime.getTime() - nowtime.getTime()) / 1000; var timer = setInterval("daojishiE()", 1000); if (maxtime <= 0) { $(".xs-qg-qw").eq(0).show(); $(".xs-qg-qg").eq(0).hide(); $(".xs-qg-qw").eq(1).show(); $(".xs-qg-qg").eq(1).hide(); clearInterval(timer); document.getElementById('showdateElectron').innerHTML = "<i>电子电器:</i><b>剩</b><em>00< /em><b>时</b><em>00</em><b>分< /b><em>00</em><b>秒</b>"; } daojishiE = function() { if (maxtime >= 0) { //day = Math.floor(maxtime / 3600 / 24); hours = Math.floor(maxtime / 3600); minutes = Math.floor((maxtime / 60) % 60); seconds = Math.floor(maxtime % 60); msg = "<i>电子电器:</i><b>剩</b>" + "<em>" + hours + "</em>" + "<b>时</b>" + "<em>" + minutes + "</em>" + "<b>分</b>" + "<em>" + seconds + "</em>" + "<b>秒</b>"; document.getElementById('showdateElectron').innerHTML = msg; //if(maxtime == 5*60) alert('注意,还有5分钟!'); --maxtime; } else { var proid = ""; $("#divCountdown input[id='hidProidE']").each(function() { proid += $(this).val() + ","; }); $.get("/AjaxBehind/DefaultHandler.ashx", { type: "edit", proidlist: proid }, function(data) { $("#showdateElectron").html(data); clearInterval(timer); window.location = window.location; }); } } }});
[解决办法]
使用timer控件实现倒计时功能,然后到了时间进行判断,给段倒计时的例子
- C# code
private DateTime dtExam = DateTime.Parse("2010-07-26 17:42:00"); //定义时间到期时间 protected void timerCD_Tick(object sender, EventArgs e) { if (this.dtExam < DateTime.Now) //如果设置的时间已过 { this.timerCD.Enabled = false; //将Timmer置为false labTimes.Text = "时间到!"; } else { RefreshTime(); //刷新时间 } } private void RefreshTime() //刷新时间的方法 { TimeSpan ts = this.dtExam - DateTime.Now; //时间差 this.labDays.Text = ts.Days.ToString().PadLeft(2, '0') + "天"; this.labTimes.Text = ts.Hours.ToString().PadLeft(2, '0') + ":" + ts.Minutes.ToString().PadLeft(2, '0') + ":" + ts.Seconds.ToString().PadLeft(2, '0'); }前台代码:<form id="form1" runat="server"> <div> </div> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 时<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>分<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Timer ID="timerCD" runat="server" Interval="1000" OnTick="timerCD_Tick"> </asp:Timer> <asp:Label ID="labDays" runat="server" Width="155px"></asp:Label><asp:Label ID="labTimes" runat="server" Width="155px"></asp:Label> </ContentTemplate> </asp:UpdatePanel> </form>
[解决办法]
DateTime.Now()获取服务端时间,如果等于你之前设定的“秒杀时间点”就执行你要做的工作。
[解决办法]
就是一个时间的判断 服务器时间到规定时间就执行事件 不到就提示秒杀时间未到、