倒计时获取 服务器的当前时间

时间:2022-09-02 17:05:18

<script type ="text/javascript">
 var  AfterTime='<%=Endtime%>'.replace(/-/ig,'/'); //获取服务的截止时间
 var EndTime= new Date(AfterTime); 
 
 var NowTime=new Date (); //获取当前时间。
 var ax=EndTime.getTime() - NowTime.getTime(); //结束时间减去当前时间。

//当时我发现上面的 NowTime=new Date ()获取的是 客户端本地的当前时间,入修改本地的时间。倒计时的时间就不正确了。
//于是我修改为 
var NowTimeServer='<%=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")%>'.replace(/-/ig,'/');//获取服务器当前日期 
var NowTime=new Date (NowTimeServer); 
var nMS=EndTime.getTime() - NowTime.getTime();  //后来发现NowTime.getTime()的值就不变了。
//请问要获取服务器的当前时间,要怎么解决。


.......
.......
.......
.......
</script>

17 个解决方案

#1


请问要获取服务器的当前时间,要怎么解决。

#2


当前的时间需要不断时刻的变动,因为要拿结束时间减去当前时间,才会产生倒计时效果

#3


为啥不第一次就算出服务器和本地的时间差,在本地倒计时呢
不停访问server就为获取个时间好奇怪...

#4


ASP获取
服务器端详细时间:<%=now()%>
服务器端年日期:<%=date()%>
服务器端年时间:<%=time()%>

#5


倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册

#6


我也觉得奇怪,为什么是new date()?而不是new time()?你是要去获取时间呢还是日期呢?

#7


引用 5 楼 wxach001 的回复:
倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

#8


另外看lz代码 我没看出倒计时的意思啊也
javascript只是取了一次服务器和本地的时间
至于时间固定的问题,你页面没有刷新,javascript没有执行,自然取不到新时间啊

#9



    <script type="text/javascript">

        var d = new Date();
        var year = d.getYear();
        var month = d.getMonth() + 1;
        var day = d.getDate();
        
        $(document).ready(function() {
            $("#divDate").html("<div style=' padding-left:5px;'>"+year + "年" +"<br/>"+ month + "月" + day + "日"+"</div>");

        });


</script>

#10


引用 9 楼 lvhuagood 的回复:
  <script type="text/javascript">

  var d = new Date();
  var year = d.getYear();
  var month = d.getMonth() + 1;
  var day = d.getDate();
   
  $(document).ready(function() {
  $("#divDate")……

你上面这样的new Date();那地的是本的时间,我在本机把时间修改了,倒计时就不准确了。

#11


引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

是客户端自己倒计时,但是需要那结尾 时间减去当前的时间,才会有倒计时的效果。
但是当前的时间,取客户端的时间,不行。我测试过。我修改下本机的时间,倒计时就不正确了。

#12


用setinterval()方法,每隔一秒调用一次你上面的方法,这样不就动态的改动时间,实现倒计时效果了

#13


引用 12 楼 xingmyworld 的回复:
用setinterval()方法,每隔一秒调用一次你上面的方法,这样不就动态的改动时间,实现倒计时效果了

用了的,但是获取的当前时间是本机的。不行。

#14


引用 11 楼 jelindu 的回复:
引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

是客户端自己倒计时,但是需要那结尾 ……


js是客户端脚本,别说改时间,就算浏览器禁用js,你也是没办法的

现在问题是你这个倒计时起什么作用,展现用的话,用读取服务器时间开始倒计时即可

抢购之类的话就必须要在提交方法里做验证

#15


引用 14 楼 ltcszk 的回复:
引用 11 楼 jelindu 的回复:

引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了……


提交方法里面是做了验证,都是正常的。但是如果客户修改本机的时间,就是显示不正常。
现在的关键是拿结束时间,减去当前的时间。当前时间是客户端的时间,如果客户端修改本机的时间,或者本机时间和北京时间不一致,那么就显示不正常。

#16


var NowTimeServer='<%=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")%>'.replace(/-/ig,'/');//

这样的写法,NowTimeServer的值并不是和服务器的值动态绑定,不要以为服务器的时间变了,这个值也跟着会变,而是服务器在生成页面时先把这个替换成服务器的时间,然后返回页面,如果页面不刷新,没有重新生成,这个值就不会更新。
要动态更新这个值,方法有两个,其实也就是web程序中浏览器端和服务端交互的两种方式。一是提交表单,重新生成页面,二是利用ajax,部分刷新页面
web程序只要理解了浏览器和服务端的交互过程,其他都简单了。

#17


时间差的方式挺好啊。如果安全性不是特别高的话。又快,又不消耗服务器资源。

#1


请问要获取服务器的当前时间,要怎么解决。

#2


当前的时间需要不断时刻的变动,因为要拿结束时间减去当前时间,才会产生倒计时效果

#3


为啥不第一次就算出服务器和本地的时间差,在本地倒计时呢
不停访问server就为获取个时间好奇怪...

#4


ASP获取
服务器端详细时间:<%=now()%>
服务器端年日期:<%=date()%>
服务器端年时间:<%=time()%>

#5


倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册

#6


我也觉得奇怪,为什么是new date()?而不是new time()?你是要去获取时间呢还是日期呢?

#7


引用 5 楼 wxach001 的回复:
倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

#8


另外看lz代码 我没看出倒计时的意思啊也
javascript只是取了一次服务器和本地的时间
至于时间固定的问题,你页面没有刷新,javascript没有执行,自然取不到新时间啊

#9



    <script type="text/javascript">

        var d = new Date();
        var year = d.getYear();
        var month = d.getMonth() + 1;
        var day = d.getDate();
        
        $(document).ready(function() {
            $("#divDate").html("<div style=' padding-left:5px;'>"+year + "年" +"<br/>"+ month + "月" + day + "日"+"</div>");

        });


</script>

#10


引用 9 楼 lvhuagood 的回复:
  <script type="text/javascript">

  var d = new Date();
  var year = d.getYear();
  var month = d.getMonth() + 1;
  var day = d.getDate();
   
  $(document).ready(function() {
  $("#divDate")……

你上面这样的new Date();那地的是本的时间,我在本机把时间修改了,倒计时就不准确了。

#11


引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

是客户端自己倒计时,但是需要那结尾 时间减去当前的时间,才会有倒计时的效果。
但是当前的时间,取客户端的时间,不行。我测试过。我修改下本机的时间,倒计时就不正确了。

#12


用setinterval()方法,每隔一秒调用一次你上面的方法,这样不就动态的改动时间,实现倒计时效果了

#13


引用 12 楼 xingmyworld 的回复:
用setinterval()方法,每隔一秒调用一次你上面的方法,这样不就动态的改动时间,实现倒计时效果了

用了的,但是获取的当前时间是本机的。不行。

#14


引用 11 楼 jelindu 的回复:
引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了啊

是客户端自己倒计时,但是需要那结尾 ……


js是客户端脚本,别说改时间,就算浏览器禁用js,你也是没办法的

现在问题是你这个倒计时起什么作用,展现用的话,用读取服务器时间开始倒计时即可

抢购之类的话就必须要在提交方法里做验证

#15


引用 14 楼 ltcszk 的回复:
引用 11 楼 jelindu 的回复:

引用 7 楼 lucifer517 的回复:
引用 5 楼 wxach001 的回复:

倒计时一般都不用new Date()来做的,不知道我理解你说的"倒计时"是否有错。如下:
我理解你的倒计时是:像在一个网站注册用户,而"协议"那一块 就是几秒后 才能进行打钩注册


这种倒计时也不需要知道server时间吧 客户端自己倒计时就行了……


提交方法里面是做了验证,都是正常的。但是如果客户修改本机的时间,就是显示不正常。
现在的关键是拿结束时间,减去当前的时间。当前时间是客户端的时间,如果客户端修改本机的时间,或者本机时间和北京时间不一致,那么就显示不正常。

#16


var NowTimeServer='<%=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")%>'.replace(/-/ig,'/');//

这样的写法,NowTimeServer的值并不是和服务器的值动态绑定,不要以为服务器的时间变了,这个值也跟着会变,而是服务器在生成页面时先把这个替换成服务器的时间,然后返回页面,如果页面不刷新,没有重新生成,这个值就不会更新。
要动态更新这个值,方法有两个,其实也就是web程序中浏览器端和服务端交互的两种方式。一是提交表单,重新生成页面,二是利用ajax,部分刷新页面
web程序只要理解了浏览器和服务端的交互过程,其他都简单了。

#17


时间差的方式挺好啊。如果安全性不是特别高的话。又快,又不消耗服务器资源。