时间算术与时刻

时间:2017-03-21 00:34:34

标签: javascript meteor momentjs

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

2 个答案:

答案 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;
&#13;
&#13;