gpt4 book ai didi

Shopify Liquid 找出一周中特定日期的日期

转载 作者:行者123 更新时间:2023-12-04 01:44:49 25 4
gpt4 key购买 nike

想知道是否有人可以帮助解决有关 Liquid/Shopify 的问题。我正在与一家每周四交付产品的商店合作,前提是您在同一周的星期二中午 12 点前订购。

在给客户的通知中,我需要根据订单日期指明它将在哪个星期四发货,即“这个”或“下一个”。我已经通过以下逻辑在液体中实现了这一点:

{% if  date | date: "%A" == 'Tuesday' and date | date: "%k" > 12 %}
Your order will be delivered on Thursday of next week.
{% elsif date | date: "%A" == 'Wednesday' or date | date: "%A" == 'Thursday' %}
Your order will be delivered on Thursday of next week.
{% else %}
Your order will be delivered this Thursday
{% endif %}

以上暂时完成这项工作。但是,我的任务是实际发布星期四交货的“日期”。我绞尽脑汁,试图找出一种方法,我可以在液体中编写一个函数来告诉我“这个”星期四的日期是什么以及“下一个”星期四的日期是什么。但我来了王牌。我知道如何使用内置函数在 PHP 和 Ruby 中执行此操作,但我是 Liquid 的新手并且不认为它具有内置函数,因为它是一种标记语言(。所以我认为你必须做一些 unix 时间数学,但这使它变得非常复杂。

还有另一种方法,还是我必须求助于使用一些复杂的 unix 时间戳数学?

谢谢。

最佳答案

您将需要进行一些 unix 计算,但它们将是简单的计算。
请参阅下面的代码:

{% assign today = 'now' | date: '%s' %}
{% assign single_day = 86400 %}
{% assign today_number = 'now' | date: '%u' | plus: 0 %}

{% if today_number < 2 %}

Delivery by {{ today | plus: single_day | date: '%Y/%m/%d' }}

{% else %}

{% assign days_until_next = 9 | minus: today_number %}
{% assign days_unix = days_until_next | times: single_day %}
Delivery by {{ today | plus: days_unix | date: '%Y/%m/%d' }}

{% endif %}
我会尝试分解它。
分配可重用数据 {% assign today = 'now' | date: '%s' %} - 有了这个,我们将获得服务器日期的当前 unix 时间戳 {% assign single_day = 86400 %} - 这是在 unix 时间戳中定义一天的数字 {% assign today_number = 'now' | date: '%u' | plus: 0 %} - 以数字形式返回当前日期 (1...7)。 plus: 0 是将其转换为数字而不是字符串。
状况 {% if today_number < 2 %} - 我们正在检查 today_number 是否小于 2(其中 2 是星期二),在这种情况下它也可以写成 {% if today_number == 1 %} ,但你得到了逻辑
输出
如果上述条件为真,我们这样做: {{ today | plus: single_day | date: '%Y/%m/%d' }} - 这将今天的时间戳和 single_day 时间戳相加,给我们明天的日期
如果 if 语句返回 false,我们将进入 {% else %} 语句,在其中设置一些变量。 {% assign days_until_next = 9 | minus: today_number %} - 因为我们从第二天开始计数,所以我使用数字 9 作为基础并减去当前的 today_number 所以例如如果今天是星期二,我们有 2 和 9-2=7 ,所以这意味着下一个星期二是从现在起 7 天. {% assign days_unix = days_until_next | times: single_day %} - 这只是计算单日 unix 数乘以到下周二的天数。所以如果我们继续上面的星期二例子,你会得到 86400*7=604800 {{ today | plus: days_unix | date: '%Y/%m/%d' }} - 最后,我们将今天的 unix 数字与直到下周二的那几天的 unix 数字相加,然后将其转换为可读的日期。
希望这很简单,可以遵循。
祝你有美好的一天!

关于Shopify Liquid 找出一周中特定日期的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44397072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com