【发布时间】:2014-10-13 15:49:52
【问题描述】:
各位, 我应该使用哪个来存储时间戳?我目前正在编写一个 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 epoch 格式吗?我不太了解 ISO 时间戳格式的差异...我认为在第一个示例中,IOS 向我发送了 ISO8601 格式时间戳。这是行业标准吗?
我已经阅读了几个线程,包括 Best way to store date/time in mongodb ,在我看来,我正在正确的轨道上将我从 ios 获得的 timestamp 转换为原生 javascript 日期对象。
当用户检索这些对象时,我是否应该将这个存储的对象转换为ISO8601 格式?
【问题讨论】: