当前位置: 代码迷 >> C# >> C# 怎么倒计时,开始时间和结束时间通过服务器来算,在客户端上是统一的
  详细解决方案

C# 怎么倒计时,开始时间和结束时间通过服务器来算,在客户端上是统一的

热度:391   发布时间:2016-05-05 04:41:06.0
C# 如何倒计时,开始时间和结束时间通过服务器来算,在客户端上是统一的
上网下载多个JS实例,效果不错,有结束时间,但没有开始的时间,放到服务器无法让客户端的时间都同步,请教好心人,帮忙,解决这个问题。
------解决思路----------------------
客户端在任何时候都可以去服务器获得与服务器的时间精确差(例如可以使用“简化的ntp算法”),然后客户端的目标时间就应该修正。例如客户端比服务器时间慢2分钟20秒,那么客户端的结束时间就应该比预计的结束时间提前2分20秒。
------解决思路----------------------
服务器设置一个定时器,客户端都去读这个时间
------解决思路----------------------
所谓"倒计时",绝逼不是用个timer每秒减去1
而是你已经知道了结束时间,那么用当前时间减去结束时间就是剩余时间了,这是最准确的,不会出现任何误差的方法

你纠结的不过是客户机时间和服务器时间不同步而已,获取一下服务器时间,然后计算和客户机时间的时间差不就得了
------解决思路----------------------
getdate()这本身不就是SQL语句吗...

客户端时间不是应该用DateTime.Now吗
------解决思路----------------------
哦,你的是JS,当我没说
------解决思路----------------------
:JS实现倒计时示例
//js设置倒计时
 <script type="text/javascript">
var msec=0
var sec=0
var min=0
function Time()
{
document.forms[0].time.value=min+":"+sec
go=setTimeout("Time()",1)
msec++
if(msec==1500)
{
msec=0
sec++
}
if(sec==59)
{
if(min<20)
{
sec=0
min++
}
}
}
</script>
//cs页面实现刷新窗口
public static void RefreshOpener()
{
  string js = @"<Script language='JavaScript'>
  opener.location.relocad();
  </Script>";
  HttpContext.Curent.Response.Write(js);
}
  相关解决方案