【发布时间】:2012-04-27 06:51:29
【问题描述】:
我使用我的文档 _id 客户端作为字符串。我希望能够像在服务器上一样从该值中提取时间戳。是否可以在客户端重新创建此功能? (重铸为objectid,或者创建一个独立的函数来拉取这个数据)
示例_id: "4f94c2a11a6bbec3872cb315"
谢谢!
【问题讨论】:
标签: javascript node.js mongodb
我使用我的文档 _id 客户端作为字符串。我希望能够像在服务器上一样从该值中提取时间戳。是否可以在客户端重新创建此功能? (重铸为objectid,或者创建一个独立的函数来拉取这个数据)
示例_id: "4f94c2a11a6bbec3872cb315"
谢谢!
【问题讨论】:
标签: javascript node.js mongodb
这个怎么样,分解成几个步骤......不幸的是,它只是存储在 ObjectID 中的第二次解析时间。
var id = "4f94c2a11a6bbec3872cb315";
// first 4 bytes are the timestamp portion (8 hex chars)
var timehex = id.substring(0,8);
console.log(timehex); // gives: 4f94c2a1
// convert to a number... base 16
var secondsSinceEpoch = parseInt(timehex, 16);
console.log(secondsSinceEpoch); // gives: 1335149217
// convert to milliseconds, and create a new date
var dt = new Date(secondsSinceEpoch*1000);
console.log(dt); // gives: Sun Apr 22 2012 22:46:57 GMT-0400 (EDT)
如果您想测试,请参阅 jsfiddle:http://jsfiddle.net/pZdyM/
注意:这有点笨拙——它取决于当前的 ObjectID 格式。他们可能有一天会在 ObjectID 内移动时间戳,这会破坏这一点。
【讨论】: