UTC 如何处理 Javascript 和时间错误的计算机?
How does UTC work with Javascript and computers with wrong times?
我一直在编写一些依赖世界时的 JavaScript 代码。我一直在用两台电脑在线做这个。其中一个落后另一个24分钟。
示例:
Computer 1: 25/07/2020, 21:57 Computer 2: 25/07/2020, 22:21
当两台计算机都输入一个 UTC 数字时,它们仍然相隔 24 分钟。
Computer 1: 1595710054892 Computer 2: 1595711497605
这种时间差异导致我的程序出现问题,因为它依赖于定时通知。
有没有办法纠正这个问题,或者我只能希望使用我的 JavaScript 代码的计算机在各自的时区内都具有相同的时间?
如果您不能相信计算机上的时钟(坦率地说,这对于 2020 年的网络连接系统来说是令人震惊的)那么您需要从其他地方获取当前时间。
执行此操作的标准方法是使用 Network Time Protocol.
快速 Google 出现 this JavaScript implementation of an NTP client:
var ntpClient = require('ntp-client');
ntpClient.getNetworkTime("pool.ntp.org", 123, function(err, date) {
if(err) {
console.error(err);
return;
}
console.log("Current time : ");
console.log(date); // Mon Jul 08 2013 21:31:31 GMT+0200 (Paris, Madrid (heure d’été))
});
如果您在浏览器中处理 JS,您将无法直接使用 NTP 协议,因此您需要通过一些服务器端代码来代理请求,这会损失一些准确性(但假设一个合理的网络连接,这将是几秒钟而不是几十分钟的数量级)。
我一直在编写一些依赖世界时的 JavaScript 代码。我一直在用两台电脑在线做这个。其中一个落后另一个24分钟。
示例:
Computer 1: 25/07/2020, 21:57 Computer 2: 25/07/2020, 22:21
当两台计算机都输入一个 UTC 数字时,它们仍然相隔 24 分钟。
Computer 1: 1595710054892 Computer 2: 1595711497605
这种时间差异导致我的程序出现问题,因为它依赖于定时通知。
有没有办法纠正这个问题,或者我只能希望使用我的 JavaScript 代码的计算机在各自的时区内都具有相同的时间?
如果您不能相信计算机上的时钟(坦率地说,这对于 2020 年的网络连接系统来说是令人震惊的)那么您需要从其他地方获取当前时间。
执行此操作的标准方法是使用 Network Time Protocol.
快速 Google 出现 this JavaScript implementation of an NTP client:
var ntpClient = require('ntp-client'); ntpClient.getNetworkTime("pool.ntp.org", 123, function(err, date) { if(err) { console.error(err); return; } console.log("Current time : "); console.log(date); // Mon Jul 08 2013 21:31:31 GMT+0200 (Paris, Madrid (heure d’été)) });
如果您在浏览器中处理 JS,您将无法直接使用 NTP 协议,因此您需要通过一些服务器端代码来代理请求,这会损失一些准确性(但假设一个合理的网络连接,这将是几秒钟而不是几十分钟的数量级)。