Flow 日期条件因时区差一天怎么修
现象#
条件写订单创建日期等于今天,北京时间 0 点到 8 点下的订单在运行记录里被判成昨天,标签没有打上。
原因#
- 订单时间戳以 UTC 存储,后台展示时区与条件求值时区可能不一致。
- 计划时间触发器按店铺时区运行,但被比较的字段仍然是 UTC 时间。
- 直接比较日期会丢掉时分,跨时区时边界整体偏移八小时。
- Liquid 的 date 过滤器未指定时区时,输出与后台看到的日期不同。
处理步骤#
- 到 设置 → 商店详细信息 确认店铺时区,记下与 UTC 的偏移。
- 计划时间触发器设在店铺时区的业务时间点,例如
09:00。 - 条件不要比日期,改为比时间区间,使用
order.createdAt的完整值。 运行代码里用new Date()换算后再判断。- 需要按本地日期分组时,先加
+08:00偏移再取日期部分。
验收标准#
在 0 点到 8 点之间下一笔测试单,运行记录里条件通过并成功打上标签。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。