8.7.7-0
手机和服务器时间尽可能一致
手机一般默认设置 使用网络提供的时间
这个时间和服务器的时间一定是有误差的
我们还要把这个误差考虑进去
那么, 这个误差怎么算呢
当手机向服务器查询一次当前时间,
会产生一个手机时刻A
服务器会返回一个服务器时间
服务器时间 - 网络从手机到服务器的时长 = 手机时刻B(以服务器为标准)
手机时间误差 = 手机时刻B - 手机时刻A
用脚本引擎启动一个单独的脚本, 每隔一定时间, 去校正一下两个值, 并且用本地存储存起来
每当要获取服务器的时间, 我们就可以读取本地存储, 直接用公式计算出服务器的时间, 而不用去请求服务器
部分内容来自网络
有时用js来获取服务器时间。一般会用System.DateTime方法如下:
复制代码
代码如下:
<script
language="javascript">
var
a
=
new
Date()
a
=
<%=System.DateTime.Now.ToString("yyyy-MM-dd
HH:mm:ss")%>
Response.Write(a)
</script>
其实还有一个方法:利用javascript的“runat="server”属性
代码
复制代码
代码如下:
<script
runat="server"
language="javascript">
var
a
=
new
Date()
a
=a.getFullYear()+
"-"+(a.getMonth()+1)+"-"+a.getDate()+"
"+a.getHours()+":"+a.getMinutes()
Response.Write(a)
</script>
助人等于自助!
正如楼上所说的,js只能操作客户端的东西。在客户端时刻显示并更新服务器的时间应该是不可能的,因为会由于网络延迟的因素使得时间不精确。打个比方,可以使用ajax每秒钟获取服务器的时间,然后再显示出来,但是可能这个用户的网络延迟比较厉害,他请求的这个时间过了两三秒才返回给客户端,那这样更新时间就不精确了。
也可以这样,第一次从服务器那里获取时间,然后再客户端用js,每秒累加数,就是以获取服务器的那个时间为起掉,用客户端代码每秒累加这个时间