cloudflare-workers - 如何在Cloudflare的工作人员中获取当前日期

标签 cloudflare-workers

Cloudflare的工作人员通常使用的Date对象都返回1970年1月1日...

在 worker 代码中获取当前日期时间的正确方法是什么?

谢谢,

G

最佳答案

在全局范围内执行时,Date对象仅返回1970-01-01。如果您在事件处理程序中使用该请求,它将正确返回当前日期。

let globalDate = Date.now();  // always zero

addEventListener("fetch", event => {
  let localDate = Date.now();  // will return actual current date
})

背景

原因是Cloudflare Workers在未指定的时间运行全局范围。请求到达时可能是按需的,但可能更早。从理论上讲,Worker甚至只能执行一次全局范围,然后对状态进行快照并在边缘执行时从快照开始。为了确保这些不同的实现选项不会影响已部署工作程序的行为,工作程序运行时必须确保全局范围的执行是完全确定性的。除其他外,这意味着Date.now()在全局范围内执行时必须始终返回相同的值-零。

关于cloudflare-workers - 如何在Cloudflare的工作人员中获取当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58491003/

相关文章:

javascript - Next.js - 使用 Clouflare Workers 进行无服务器渲染?

javascript - 如何与 Cloudflare 工作人员进行 A/B 测试

environment-variables - 如何在本地开发环境中使用CloudFlare Worker中的环境变量

javascript - 使用 Cloudflare Workers 将图像发送到 Telegram

cloudflare-workers - 在 Typescript 中使用环境变量

node.js - Nodejs URL路径取消引用路径名中的保留字符(有时)

http - 如何不丢失 Cloudflare Workers 中 301 https 重定向的引用值

node.js - 无服务器错误代码 10021 : Uncaught ReferenceError: require is not defined

cloudflare - 如何修复 cloudflare 中的身份验证错误代码 10000