【问题标题】:Node.js record date is greater than the current client dateNode.js 记录日期大于当前客户端日期
【发布时间】:2013-02-12 20:37:23
【问题描述】:

当我在 mongodb 中为记录日期写入数据时,我在 node.js 中使用 new Date() 并使用 ajax 响应返回该日期。为了计算从 mongodb 中的数据开始经过的时间,我在客户端创建了一个新日期。然后我计算当前日期与来自服务器的日期之间的差异。

这是我的代码:

var now = new Date();
var post_date = new Date(date_from_server);
var elapsed = now - post_date/1000;
document.write(elapsed + " seconds elapsed");

但是,我不知道,记录日期大于当前日期,并且它们之间的第一次差值为-40秒!

请帮助我理解这一点。我想那是我做错了。但是怎么了?

【问题讨论】:

  • 系统时钟是否同步?
  • 没有。但我使用时间戳
  • 对不起,伙计们。我刚从服务器管理员那里得到消息 - 他说服务器时间有 40 秒的偏差 :)

标签: javascript node.js mongodb date


【解决方案1】:

似乎服务器和客户端之间的时间设置不同。您可以尝试向服务器发出 getFinalTime 事件,服务器记录第二次并返回给客户端进行计算。

【讨论】:

  • 这很明显。 :) 但是从服务器收到的日期是否可能早于它生成后的日期?
  • @VladimirTitsky 例如,如果服务器上的时间是今天,客户端上的时间是昨天,你最终会得到 1 天的差异。
  • 我明白这一点。但是服务器时间是今天,客户端时间(在我的情况下)是服务器时间+等待服务器响应的几秒钟
  • @VladimirTitsky var now = new Date(); 获取您客户端计算机中的时间。不同的客户端计算机本地时间不同,与服务器不同步。
  • 他们不同步的事实完全正常。我使用服务器上的时间戳: var now = new Date() - 客户端日期和 var post_date = new Date(date_from_server) 所以我得到一个与客户端计算机时间相对应的日期跨度>
猜你喜欢
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多