2017-03-21 38 views
0

在这个用户集合的Meteor服务器端代码中,属性createdAt显示类似于这样的东西ISODate("2017-02-09T01:22:30.894Z")
而在另一个集合myCol我有createdAt财产与unix时间戳以毫秒为单位。 Moment.js已安装。
如何检查以下条件:
myCol.createdAt是在创建用户的月份结束后的n个月之后。 thx时刻算术时刻

回答

1

这里是一个办法,应该工作(当然有其他的方法来做到这一点...屈指可数,这是浮现在脑海的第一个)。

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

var moment1 = moment(userOne.createdAt);

然后,您可以将Unix时间戳的其他集合在这样的(假设文档存储在一个名为变种doc)。

var moment2 = moment(doc.createdAt);

现在找到时刻moment1结束,并添加“N”个月。

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

最后,做你的比较。

moment2.isAfter(moment1);

0

我不知道如何获得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>