Shopify Function中new Date()返回1970-01-01问题求助
Shopify Function 获取当前日期的问题解决
问题根源:Shopify Functions运行在WebAssembly受限环境里,不像浏览器或Node.js能直接访问系统时钟,所以调用
new Date()时,因为没有可用的当前时间数据源,只能返回纪元起始时间(1970-01-01),这不是解析问题,是环境限制导致的。正确获取当前日期的方法:
Shopify会把当前请求的系统时间作为上下文数据传入Function,你需要从输入参数里提取context.currentDate字段来获取准确的当前日期。举个JS Function的示例:
export function run(input) { // 从Shopify传入的上下文拿到当前日期 const currentShopifyDate = new Date(input.context.currentDate); // 假设你的目标日期是从输入中获取的 const targetDate = new Date(input.targetDate); // 日期对比逻辑 if (currentShopifyDate >= targetDate) { // 执行你的业务逻辑 } }注意事项:
不要用Date.now()或无参数的new Date(),这些方法在Shopify Function环境中都无法获取真实当前时间。必须依赖Shopify提供的上下文时间,这样还能保证和Shopify系统时间一致,避免时区、本地时间偏差的问题。
内容的提问来源于stack exchange,提问作者Eric Brown
相关产品推荐
相关产品推荐

