You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shopify Liquid的Case语句中嵌入时间判断实现分时段分日期消息展示

Shopify Liquid 实现按伦敦时间+日期展示不同消息

首先需要注意两个核心要点:

  • 强制使用伦敦时区获取当前时间,避免时区偏差
  • 将时间转换为24小时制的小时数(而非字符串格式的时分),方便直接做数值比较

修改后的完整代码如下:

{% comment %} 获取伦敦时区的当前日期和小时数 {% endcomment %}
{% assign day = 'now' | date: '%A', tz: 'Europe/London' %}
{% assign current_hour = 'now' | date: '%H', tz: 'Europe/London' | plus: 0 %} {% comment %} 转成数字方便比较 {% endcomment %}

{% case day %}
  {% when "Monday" %}
    {% if current_hour < 16 %}
      <p>周一专属:伦敦时间16点前,订单今日处理</p>
    {% else %}
      <p>周一专属:伦敦时间已过16点,订单将在周二处理</p>
    {% endif %}

  {% when "Tuesday" %}
    {% if current_hour < 16 %}
      <p>周二专属:16点前下单,今日发货</p>
    {% else %}
      <p>周二专属:16点后下单,明日发货</p>
    {% endif %}

  {% when "Wednesday" %}
    {% if current_hour < 16 %}
      <p>周三专属:今日特惠截止到16点</p>
    {% else %}
      <p>周三专属:明日特惠即将开启</p>
    {% endif %}

  {% when "Thursday" %}
    {% if current_hour < 16 %}
      <p>周四专属:16点前下单享优先配送</p>
    {% else %}
      <p>周四专属:16点后下单,订单将在周一处理</p>
    {% endif %}

  {% when "Friday" %}
    {% if current_hour < 16 %}
      <p>周五专属:周末前最后发货时段,16点前下单今日发</p>
    {% else %}
      <p>周五专属:16点后下单,我们下周一见!</p>
    {% endif %}

  {% when "Saturday" %}
    {% if current_hour < 16 %}
      <p>周六专属:周末客服在线到16点,有问题随时咨询</p>
    {% else %}
      <p>周六专属:客服已下线,周一回复您的咨询</p>
    {% endif %}

  {% when "Sunday" %}
    {% if current_hour < 16 %}
      <p>周日专属:16点前可预约周一配送</p>
    {% else %}
      <p>周日专属:16点后预约,配送将安排在周二</p>
    {% endif %}

  {% else %}
    <p>抱歉,暂时无法获取当前日期信息</p>
{% endcase %}

关键修改说明:

  1. 时区指定:通过tz: 'Europe/London'参数强制使用伦敦时区,避免Shopify默认时区(通常为商店设置时区)导致的时间偏差
  2. 时间处理:用%H获取24小时制的小时数,再通过plus: 0转换为数字类型,直接用<做数值比较,比字符串格式的%R更可靠
  3. 分支嵌套:在每个{% when %}分支内直接嵌套{% if %}判断,实现「日期专属内容+时间分段消息」的组合逻辑

你可以根据实际需求替换每个分支里的消息文本,保持结构不变即可。

内容的提问来源于stack exchange,提问作者LukeTerzich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:57:09