【问题标题】:dynamodb nodejs/lambda date.now()dynamodb nodejs/lambda date.now()
【发布时间】:2023-03-31 13:27:01
【问题描述】:

我正在尝试在 dynamodb 中实现 TTL(生存时间),并随着时间得到意想不到的结果。

填充此数据库的我的 lambda 函数 (nodejs10.x) 对 created_oncode_expiration 字段使用以下代码:

  const created_on = Date.now()
  const code_expiration = created_on + (process.env.EXPIRY_MINUTES * 60 * 1000)

在我的 lambda 环境变量中,我将 EXPIRY_MINUTES 设置为 2880

看着https://www.epochconverter.com/,我的纪元时间整数得到以下值:

created_on: 1569822339715
GMT: Monday, September 30, 2019 5:45:39.715 AM
Your time zone: Monday, September 30, 2019 1:45:39.715 AM GMT-04:00 DST
Relative: 9 minutes ago

code_expiration: 1569995139715
GMT: Wednesday, October 2, 2019 5:45:39.715 AM
Your time zone: Wednesday, October 2, 2019 1:45:39.715 AM GMT-04:00 DST
Relative: In 2 days

我很好奇,为什么当我将鼠标悬停在 dynamodb 中的记录上时,它显示的日期是大约 5 万年后?

我需要以不同的方式捕捉纪元时间吗?
如果我处理正确,TTL 服务会将其读取为 02/10/2019 还是 02/03/51721?

【问题讨论】:

    标签: javascript node.js amazon-web-services amazon-dynamodb


    【解决方案1】:
      const created_on = Math.floor(new Date().getTime() / 1000.0)
      const code_expiration = created_on + (process.env.EXPIRY_MINUTES * 60)
    

    不要转换为毫秒

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多