我在应用程序中使用 moment.js,我将特定格式的日期传递给 moment.js,它将其与系统时间进行比较,并给出漂亮的时间格式,如下所示:
moment(time, "YYYY-MM-DD HH:mm:ss.SSSSSS").fromNow();
这里的时间是我以指定格式的时间戳给出的。
我的问题是 fromNow() 函数采用系统日期而不是服务器日期。因此,如果用户使用系统延迟时间为 5 分钟的手机,他将获得 4 分钟前的最新更新卡。
我想将我经过的“时间”与服务器时间进行比较,服务器时间也将由我经过。
最佳答案
您可以从服务器传入 2 个日期:现有时间戳和服务器的“当前”时间戳。
然后(假设您的服务器以相同的格式传递时间戳)您可以使用 .from()
而不是 .fromNow()
做:
moment(time, "YYYY-MM-DD HH:mm:ss.SSSSSS").from(serverTime, "YYYY-MM-DD HH:mm:ss.SSSSSS");
如果这是您使用时间戳的唯一目的,您可以让服务器直接计算并返回增量(我们称之为serverDeltaMs
)并使用 moment.duration(serverDeltaMs).humanize()
进行格式化。 .
关于javascript - 如何在 moment.js 中比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30796403/