Cloudflare工人的通常Date对象全部返回1970年1月1日...
在工人代码中获取当前日期时间的正确方法是什么?
谢谢,
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()
在全局范围内执行时必须始终返回相同的值-零。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句