打个比方,可以使用ajax每秒钟获取服务器的时间,然后再显示出来,但是可能这个用户的网络延迟比较厉害,他请求的这个时间过了两三秒才返回给客户端,那这样更新时间就不精确了。
也可以这样,第一次从服务器那里获取时间,然后再客户端用js,每秒累加数,就是以获取服务器的那个时间为起掉,用客户端代码每秒累加这个时间
牙叔教程 简单易学8.7.7-0
手机和服务器时间尽可能一致
手机一般默认设置 使用网络提供的时间
这个时间和服务器的时间一定是有误差的
我们还要把这个误差考虑进去
那么, 这个误差怎么算呢
当手机向服务器查询一次当前时间,
会产生一个手机时刻A
服务器会返回一个服务器时间
服务器时间 - 网络从手机到服务器的时长 = 手机时刻B(以服务器为标准)
手机时间误差 = 手机时刻B - 手机时刻A
用脚本引擎启动一个单独的脚本, 每隔一定时间, 去校正一下两个值, 并且用本地存储存起来
每当要获取服务器的时间, 我们就可以读取本地存储, 直接用公式计算出服务器的时间, 而不用去请求服务器
参考代码如下:
<SCRIPT LANGUAGE = "JavaScript">var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0")
xmlhttp.open("GET", "http://bjtime.cn", false)
xmlhttp.setRequestHeader("If-Modified-Since", "bjtime")
xmlhttp.send()
var dateStr = xmlhttp.getResponseHeader("Date")
var date = new Date(dateStr)
var year = date.getFullYear()
var month = date.getMonth() + 1
var date1 = date.getDate()
var hour = date.getHours()
var minutes = date.getMinutes()
var second = date.getSeconds()
alert(date + " | " + year + "年" + month + "月" + date1 + "日" + hour + "时" + minutes + "分" + second + "秒")
</SCRIPT>