Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Meteor Mongo上加、减、比较日期和时间_Javascript_Node.js_Mongodb_Datetime_Meteor - Fatal编程技术网

Javascript 在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上加上或减去日期或时间(如果他们使用不同的方法,我会很高兴有人简要解释这两种方法),并与他们进行比较 另外,当我们从数据库中获取信息时,选择哪一个是最好的选择?如果直接

我正在Meteor Mongo上运行一个集合,其中有一个字段名为
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