如何在 Cloudflare 的工作人员中获取当前日期
How to get the current date in a Cloudflare's worker
Cloudflare workers 上的常用 Date 对象,全部 return 1 jan,1970...
在工人代码中获取当前日期时间的正确方法是什么?
谢谢,
G
在全局范围内执行时,Date
对象仅 returns 1970-01-01。如果您在请求的事件处理程序中使用它,它将正确地 return 当前日期。
let globalDate = Date.now(); // always zero
addEventListener("fetch", event => {
let localDate = Date.now(); // will return actual current date
})
背景
原因是 Cloudflare Workers 在未指定的时间运行全局范围。当请求到达时它可能是按需的,但也可能更早。理论上,Workers 甚至可以只执行一次全局范围,然后在边缘执行时快照状态并从快照开始。为了确保这种不同的实现选项不会影响部署的 workers 的行为,Workers Runtime 必须确保全局范围的执行是完全确定的。除其他事项外,这意味着 Date.now()
在全局范围内执行时必须始终 return 相同的值——零。
Cloudflare workers 上的常用 Date 对象,全部 return 1 jan,1970...
在工人代码中获取当前日期时间的正确方法是什么?
谢谢,
G
在全局范围内执行时,Date
对象仅 returns 1970-01-01。如果您在请求的事件处理程序中使用它,它将正确地 return 当前日期。
let globalDate = Date.now(); // always zero
addEventListener("fetch", event => {
let localDate = Date.now(); // will return actual current date
})
背景
原因是 Cloudflare Workers 在未指定的时间运行全局范围。当请求到达时它可能是按需的,但也可能更早。理论上,Workers 甚至可以只执行一次全局范围,然后在边缘执行时快照状态并从快照开始。为了确保这种不同的实现选项不会影响部署的 workers 的行为,Workers Runtime 必须确保全局范围的执行是完全确定的。除其他事项外,这意味着 Date.now()
在全局范围内执行时必须始终 return 相同的值——零。