如何比较 moment.js 中的两个日期

How to compare two dates in moment.js

我在我的应用程序中使用 moment.js,我将我的日期以特定格式传递给 moment.js,然后它将它与系统时间进行比较,并给我一个漂亮的时间格式,如下所示:

moment(time, "YYYY-MM-DD HH:mm:ss.SSSSSS").fromNow();

这里的时间是我给的时间戳,格式是指定的。

我的问题是 fromNow() 函数采用系统日期而不是服务器日期。因此,如果用户在他的系统中使用他的 phone 并延迟 5 分钟,他将在 4 分钟前获得最新更新的卡片。

我想比较我传递的"time"和服务器时间,那也是我传递的。

您可以从服务器传递 2 个日期:现有时间戳和服务器的 "now" 时间戳。

然后(假设您的服务器以相同格式传递其时间戳)您可以使用 .from() 而不是 .fromNow() do:

moment(time, "YYYY-MM-DD HH:mm:ss.SSSSSS").from(serverTime, "YYYY-MM-DD HH:mm:ss.SSSSSS");

如果这是您使用时间戳的唯一目的,您可以让服务器直接计算并 return 增量(我们称之为 serverDeltaMs)并使用 moment.duration(serverDeltaMs).humanize().