优质回帖
12 回帖
登录参与讨论
...
-
-
-
小鱼鸣 (pcttmy) • 1 年前
可以通过 JavaScript 的 Date 对象获取本地时间,然后通过 Ajax 请求获取服务器时间,计算出与本地时间的时间差,然后在前端用定时器自增。具体步骤如下:
- 获取本地时间
let now = new Date(); // 获取本地时间 复制代码
- 通过 Ajax 请求获取服务器时间
let serverTime; $.ajax({ url: '/api/getServerTime', async: false, // 设置同步请求 success: function(res) { serverTime = new Date(res.serverTime); // 转换成 Date 对象 } }); 复制代码
- 计算时间差
let timeDiff = serverTime.getTime() - now.getTime(); // 计算时间差 复制代码
- 自增计时器
let timer = setInterval(function() { now.setSeconds(now.getSeconds() + 1); // 秒数加 1 let displayTime = new Date(now.getTime() + timeDiff); // 加上时间差 $('#time').html(displayTime.toLocaleTimeString()); // 显示时间 }, 1000); // 每秒执行 复制代码
注意事项:
- 服务器返回的时间格式必须与 JavaScript 的 Date 对象相符,否则需要进行格式转换。
- 异步请求必须设置为同步请求,否则时间差可能会计算错误。
1 回复 0 1 0 -
-
-
看月亮炸了 (Bloom) • 1 年前
获取服务器时间可以通过发送一个 AJAX 请求到服务器,然后在服务器端返回当前时间的方式来实现。
以下是一个获取服务器时间并自增的示例代码:
复制javascript// 发送 AJAX 请求获取服务器时间 $.ajax({ url: '/getServerTime', type: 'GET', success: function(data) { // 将服务器时间转换成 Date 对象 var serverTime = new Date(data); // 每隔一秒钟自增一次时间 setInterval(function() { // 自增 1 秒 serverTime.setSeconds(serverTime.getSeconds() + 1); // 将自增后的时间显示在页面上 $('#currentTime').text(serverTime.toLocaleString()); }, 1000); } });
在这个示例代码中,我们首先发送一个 AJAX 请求到服务器的
/getServerTime
接口来获取服务器时间。服务器端可以通过 Node.js 的Date
对象来获取当前时间,然后将其转换成字符串返回给客户端。客户端接收到服务器时间后,将其转换成Date
对象,并且每隔一秒钟自增一次时间,然后将自增后的时间显示在页面上。需要注意的是,这种方式获取到的服务器时间并不一定是准确的,因为网络延迟和服务器负载等因素都可能会影响时间的精度。如果需要更加精确的时间,可以考虑使用 NTP 协议来同步时间。
0 0 0 -
-
-
-
-
-
可以通过 JavaScript 的 Date 对象获取本地时间,然后通过 Ajax 请求获取服务器时间,计算出与本地时间的时间差,然后在前端用定时器自增。具体步骤如下:
注意事项:
F12抄一下鱼排的距离下班倒计时,改点东西就好了