在用户集合的此Meteor服务器端代码中,属性createdAt
显示类似ISODate("2017-02-09T01:22:30.894Z")
的内容。
在另一个集合myCol
中,我有createdAt
属性,其中包含unix时间戳,以毫秒为单位。
已安装Moment.js
如何检查以下情况:
myCol.createdAt是在创建用户的月份结束后的n个月之后。 THX
答案 0 :(得分:1)
这是一种应该有效的方法(当然还有其他一些方法可以做到这一点......这是第一个想到的方法)。
您可以将用户createdAt
属性转换为此类时刻对象(假设您的用户文档存储在名为userOne
的var中)。
var moment1 = moment(userOne.createdAt);
然后,您可以像这样转换其他集合中的unix时间戳(假设doc存储在名为doc
的var中)。
var moment2 = moment(doc.createdAt);
现在找到片刻1的结束并添加' N'个月。
moment1.endOf('month').add(N, 'months');
最后,进行比较。
moment2.isAfter(moment1);
答案 1 :(得分:0)
我不确定如何获取ISODate
对象的字符串表示,可能只是.toString()
。
但是,您可以通过当前日期myCol.createdAt
代表Date.now()
来获得与月份相关的时差。
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>
&#13;