javascript - 从客户端的 mongo _id 中提取日期

标签 javascript node.js mongodb

我在客户端使用我的文档 _id 作为字符串。我希望能够像在服务器上一样从这个值中提取时间戳。是否可以在客户端重新创建此功能? (重铸为 objectid,或创建一个独立的函数来提取此数据)

示例 _id: "4f94c2a11a6bbec3872cb315"

谢谢!

最佳答案

这个怎么样,分解成几个步骤......不幸的是,它只是存储在 ObjectID 中的第二个解决时间。

var id = "4f94c2a11a6bbec3872cb315"​;
// first 4 bytes are the timestamp portion (8 hex chars)
var timehex = id.sub​string(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 内移动时间戳,这会打破这一点。

关于javascript - 从客户端的 mongo _id 中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346067/

相关文章:

mongodb - AWS + Elastic Beanstalk + MongoDB

javascript - Javascript mousedown、mouseup 和 mouseover 事件出现奇怪且意外的行为

javascript - 注入(inject)子元素时触发 jQuery mouseout

node.js - vue-socket.io 应用程序未收到来自 express socket.io 应用程序的发射

node.js - 在 Sequelize 中创建多对多关联的问题。 (属于多)

java - 使用 Java 的字段中的 MongoDB concat 数组

c - MongoDB:哪个 C 驱动程序?

javascript - 对象赋值的扩展运算符

javascript - 表单将 JavaScript 粘贴到数据库中

node.js - prisma ORM 中的用户和好友关系模型