【问题标题】:Time arithmetic with moment带矩的时间算术
【发布时间】:2017-03-21 00:34:34
【问题描述】:

在用户集合的 This Meteor 服务器端代码中,属性 createdAt 显示类似 ISODate("2017-02-09T01:22:30.894Z") 的内容。
在另一个集合myCol 我有createdAt 属性,其unix 时间戳以毫秒为单位。 Moment.js 已安装。
如何检查以下情况:
myCol.createdAt 是从创建用户的月底​​开始的 n 个月后。谢谢

【问题讨论】:

    标签: javascript meteor momentjs


    【解决方案1】:

    这是一种应该可行的方法(当然还有一些其他方法可以做到这一点……这是我想到的第一个方法)。

    您可以将 Users createdAt 属性转换为像这样的时刻对象(假设您的用户文档存储在名为 userOne 的 var 中)。

    var moment1 = moment(userOne.createdAt);

    然后,您可以像这样转换其他集合中的 unix 时间戳(假设文档存储在名为 doc 的 var 中)。

    var moment2 = moment(doc.createdAt);

    现在找到 moment1 的结束时间并添加 'N' 个月。

    moment1.endOf('month').add(N, 'months');

    最后,进行比较。

    moment2.isAfter(moment1);

    【讨论】:

      【解决方案2】:

      我不确定如何获取 ISODate 对象的字符串表示形式,可能只是 .toString()

      但是,通过当前日期Date.now() 表示的myCol.createdAt,您可以通过这种方式获得以月为单位的时差。

      var isoString = "2017-02-09T01:22:30.894Z"
      var today = Date.now()
      console.log(moment(isoString).diff(today, 'months'))
      <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.min.js"></script>

      【讨论】:

        猜你喜欢
        • 2011-07-25
        • 2014-04-05
        • 1970-01-01
        • 1970-01-01
        • 2019-02-01
        • 2010-09-07
        • 2011-10-22
        • 2017-10-31
        • 1970-01-01
        相关资源
        最近更新 更多