javascript - 如何在 moment.js 中比较两个日期

标签 javascript jquery angularjs date momentjs

我在应用程序中使用 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/

相关文章:

javascript - Popstate - 将弹出状态传递给事件处理程序

javascript - 固定标题下方的固定导航栏

javascript - 测试 Angular $emit 和 $on 事件

javascript - 新添加的元素无法使用 jQuery API close() 在 DOM 树中向上遍历其祖先,返回 "undefined"

javascript - 你确定/脏表格 - 隐藏或显示请稍候

jquery - Bootstrap Carousel 只加载一张图片

jQuery 对象实例与其他 DOM 节点重用以提高性能

javascript - 如何在 Angular 中使用大写过滤器?

angularjs - 使用 AngularJS $filter ('filter' ) 和 OR

javascript - localStorage 值的最大大小是多少?