ios和mongodb的时间戳选择,moment.js

ios和mongodb的时间戳选择,moment.js,ios,node.js,time,momentjs,Ios,Node.js,Time,Momentjs,各位, 我应该使用哪个来存储时间戳?我目前正在编写一个API服务,它在MongoDB中存储时间戳。这些时间戳对我很重要,因为我需要查询数据库的时间范围。。。返回过去一小时内或在特定日期之间存储的所有文件 IOS应用程序在ISO8601中向我发送具有以下时间戳的对象: 2014-10-09T18:00:48+01:00 如果我将这些直接存储到mongo中,则文档如下所示: { "_id" : "2B6127C1-4E25-4271-B5A4-2CA9FEA4E1C3", "tim

各位, 我应该使用哪个来存储时间戳?我目前正在编写一个API服务,它在MongoDB中存储时间戳。这些时间戳对我很重要,因为我需要查询数据库的时间范围。。。返回过去一小时内或在特定日期之间存储的所有文件

IOS应用程序在
ISO8601
中向我发送具有以下时间戳的对象:

2014-10-09T18:00:48+01:00
如果我将这些直接存储到mongo中,则文档如下所示:

{
    "_id" : "2B6127C1-4E25-4271-B5A4-2CA9FEA4E1C3",
    "timestamp" : "2014-10-09T18:00:48+01:00"
}
我可以很容易地将其插入mongo,但在我看来,我应该执行
object.timestamp=moment(object.created.toDate()

这将产生:

2014-10-09T18:00:48+01:00
在mongo中,文档将如下所示:

{
    "_id" : "2B6127C1-4E25-4271-B5A4-2CA9FEA4E1C3",
    "timestamp" : ISODate("2014-10-09T13:00:48.000-04:00")
}
我应该把它们转换成unix格式吗?我不是很精通ISO时间戳格式的差异。。。我认为在第一个示例中,IOS向我发送了一个
ISO8601
格式的时间戳。这是行业标准吗

我读过好几篇文章,包括,在我看来,将从ios获得的
时间戳
转换为本机javascript日期对象是正确的


当用户检索这些对象时,我是否应该将存储的对象转换为
ISO8601
格式

以最原始的格式存储将允许您使用更多原始功能。Mongo的查询或聚合API可以使用带有本机日期的
$gt
$lte
。这对于查询来说非常方便。用“表示日期的字符串”做这类事情要困难得多

从1970年开始以毫秒为单位进行存储,或者其他类似的方式,但由于
ISODate
是Mongo可以识别的类型,所以只需使用它即可


另外,在
moment.js
上也有不错的选择。这是一个有趣的库,使您选择显示给客户的任何内容都隐藏在数据存储方式(这是您想要的方式…)之外。

完美!在退出的过程中,我会将时间戳转换为ios的iso8601(
)我在将本地时间戳转换为utc时间戳的过程中经历了一段可怕的时光:(也许你能帮上忙!