Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查在mongodb中创建objectid花费了多少时间_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 检查在mongodb中创建objectid花费了多少时间

Javascript 检查在mongodb中创建objectid花费了多少时间,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我正在构建一个允许用户重置密码的应用程序。 这个过程非常简单。用户输入他的电子邮件地址,我给他发送一个链接,其中包含创建的新objectid的编号。 例如->/reset password?x=55555 4475D41A000001。 点击链接后,他进入另一个页面,然后我想检查从他获得链接起是否已经过了24小时?是的,我知道有一个名为“getTimestamp”的函数,但如何使用它 get: function (request, response) { ??????? }, 创建对象

我正在构建一个允许用户重置密码的应用程序。 这个过程非常简单。用户输入他的电子邮件地址,我给他发送一个链接,其中包含创建的新objectid的编号。 例如->/reset password?x=55555 4475D41A000001。 点击链接后,他进入另一个页面,然后我想检查从他获得链接起是否已经过了24小时?是的,我知道有一个名为“getTimestamp”的函数,但如何使用它

get: function (request, response) {

  ???????

},
创建对象时,可以在对象中设置“创建日期”属性,如下所示:

obj = {
    id: "xxxxxx...",
    creation_date: new Date()
    ...
}
然后将对象存储在服务器中的某个位置,然后当用户打开带有对象id的链接时,您将执行以下操作以检查对象是否在24小时前创建:

var now = new Date();

if (now - obj.creation_date > 86400000) {
    // more than 24h (86400000ms = 24h)
    // do something
}
实际上可能会有帮助

检查对象创建后是否已过24小时应该尽可能简单

var now = new Date();

/* Subtract the milliseconds a day lasts from the current time.
 * If the timestamp of the ID converted to msecs after epoch is smaller
 * the ObjectId was created before that.
 */
if ( myId.getTimestamp() < ( now.getTime() - 86400000 ) {
  console.log("24 h have passed since creation");
}
else {
  console.log("24 h haven't passed since creation");
  var passed = new Date( now - myId.getTimestamp() );
  console.log(passed.getUTCHours()+":"+passed.getUTCMinutes()+" have passed.");
}
var now=newdate();
/*从当前时间中减去每天持续的毫秒数。
*如果在历元之后转换为毫秒的ID的时间戳较小
*ObjectId是在此之前创建的。
*/
if(myId.getTimestamp()<(now.getTime()-86400000){
log(“自创建以来已过24小时”);
}
否则{
log(“自创建以来还没有过24小时”);
var passed=新日期(现在为-myId.getTimestamp());
log(passed.getUTCHours()+“:”+passed.getUTCMinutes()+“have passed”);
}

注意:我否决了你的问题,因为通过谷歌搜索“MongoDB ObjectId getTimestamp JavaScript api”可以很容易地解决这个问题,您自己没有表现出任何解决问题的迹象,也没有提出具体问题。我可以礼貌地建议您阅读ESR,尤其是?

感谢您的回答,但我认为这是双重工作。在objectid中,这些数据已经存在。因此,再创建一次没有意义。我不熟悉这些库,请让我看看您的对象id(ObjectId)中已经创建的数据对象的格式是什么:43243244233fXXXXX,时间:1323131=sun sep XXXXXX,machine=XXXXXX,inc=XXXXXX任何其他信息?转储?如果我不知道该对象上的时间格式,我无法帮助您:\抱歉