首页 > 解决方案 > 如何使用来自 mongodb 的时间戳在特定时间触发函数?

问题描述

假设我在我的 MongoDB 中存储了一些时间戳,每个时间戳都表示应该运行某个特定函数的时间。

我不确定什么是正确的方法,因为我是后端开发的新手。

Mongo 数据结构是这样的(这只是一个例子):

{id: 115155, userId: 152115, timestamp: 13-09-2019:15:30:00}

在这个特定的时间我想触发一个功能:

someFunction(eventId, userId){ ...something here }

标签: node.jsmongodbtypescriptexpress

解决方案


您需要将您从 mongodb 获得的时间戳格式更改为这样的格式 - “2019 年 9 月 13 日 18:39:40”或“2019-01-01 00:00:00”。然后您需要使用此 Date.parse() 解析从 mongodb 获得的时间戳

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

完成后,您需要获取时间戳当前时间之间的差异,并在 setTimeout() 函数中使用该差异,该函数需要 2 个参数 -要运行的函数以毫秒为单位的时间

    let timediff = new Date() - Date.parse("2019-09-13 18:54:50");

    setTimeout(function() { 
        console.log("Called when current time = mongodb timestamp"); 
    }, timediff);

推荐阅读