如何在Meteor中存储日期和时间以进行范围查询?

时间:2014-08-19 21:54:14

标签: javascript mongodb date meteor

我的应用需要创建在浏览器中将3个不同时区显示的startDate的对象。日期还必须包括确切的时间。日期应该以这样一种方式存储,它允许查询"给我所有的日期在X和Y"之间。并将其解析为3个时区。

我的问题是我应该如何最好地保存(并随后检索)日期和时间,以便我可以在日期范围中稍后查询,我是否应该使用moment.js?我想到的是,将日期和时间都保存在数据库中的单个unix时间戳中,并且在读取时只需将其解析为具有该特定时区的日期和时间。这种方法是正确的,还是应该将其保存为普通的javascript日期? mongoDB可以将unix时间戳作为日期范围查询还是需要普通的Date对象?

感谢。

1 个答案:

答案 0 :(得分:5)

您需要了解的有关此事的所有内容here。亮点:

  • 将日期存储为JavaScript Date对象。它们具有整数时间戳的所有查询优势,但您不需要将它们转换回Date个对象以使用它们。

  • 范围查询的工作原理如下:Posts.find({creation_date: {$gte: startDate, $lt: endDate}})

  • 您应该让服务器执行插入操作,或使用timesync包来防止时钟偏差问题。

  • 您可以使用moment-timezone将日期格式化为不同的时区。例如moment(date).tz("America/New_York").format('l LT')