Javascript 在Meteor Mongo上加、减、比较日期和时间
我正在Meteor Mongo上运行一个集合,其中有一个字段名为Javascript 在Meteor Mongo上加、减、比较日期和时间,javascript,node.js,mongodb,datetime,meteor,Javascript,Node.js,Mongodb,Datetime,Meteor,我正在Meteor Mongo上运行一个集合,其中有一个字段名为last\u activity,另一个字段名为expire\u date 在这种特殊情况下,我需要从其上次活动发生在N小时前的集合中获取项目 在第二种情况下,我必须保存一个expire\u date,该日期距离创建时间(现在)有N个月 我如何在Mongo/Meteor上加上或减去日期或时间(如果他们使用不同的方法,我会很高兴有人简要解释这两种方法),并与他们进行比较 另外,当我们从数据库中获取信息时,选择哪一个是最好的选择?如果直接
last\u activity
,另一个字段名为expire\u date
在这种特殊情况下,我需要从其上次活动
发生在N小时前的集合中获取项目
在第二种情况下,我必须保存一个expire\u date
,该日期距离创建时间(现在)有N个月
我如何在Mongo/Meteor上加上或减去日期或时间(如果他们使用不同的方法,我会很高兴有人简要解释这两种方法),并与他们进行比较
另外,当我们从数据库中获取信息时,选择哪一个是最好的选择?如果直接在Mongo上执行,是否可以节省一些处理时间?您可以使用矩.js以可读的英语添加或减少时间。有一个很容易安装的时刻
$ meteor add momentjs:moment
生成正确的日期对象后,可以将其保存在Mongo数据库中。这取决于如何存储日期。你至少有两个选择
Date.now()
1437215759517
或
在第一种情况下,它是来自linux(unix)世界中某个特定时间点的毫秒数:D
您可以轻松地将任何时间添加到现有时间。例如:
1 week
7 * 1 days
7 * 24 hours
7 * 24 * 60 minutes
7 * 24 * 60 * 60 seconds
7 * 24 * 60 * 60 * 1000 ms
因此,在您的代码中,您将有如下内容(1周后):
是的。我建议用令人赏心悦目的格式显示这个日期
将所有日期|时间存储在ISO-{createdAt:ISODate(“2015-08-12T09:36:42Z”)中。 使用momentjs:
moment().toDate()
var currentDateInISO = moment().toDate()
posts.insert({createdAt: currentDateInISO});
比较2个ISODate:
var t1 = moment().toDate()
var t2 = moment().toDate()
moment(t1).isBefore(t2) // True
玩得开心。你如何比较日期?
expire_date = Date.now() + 7 * (24 * 60 * 60 * 1000)
Date.now()
1437216383841
moment(Date.now()).format('LL')
"July 18, 2015"
moment(Date.now() + 7 * (24 * 60 * 60 * 1000)).fromNow()
"in 7 days"
moment().toDate()
var currentDateInISO = moment().toDate()
posts.insert({createdAt: currentDateInISO});
var t1 = moment().toDate()
var t2 = moment().toDate()
moment(t1).isBefore(t2) // True