Shopify Liquid Date 年初变量

Shopify Liquid Date Beginning of the year variables

我希望为以下内容创建变量:

  1. 今年年初:例如,如果日期是 2021 年 5 月 3 日,那么这就是 2021-01-05
  2. 去年年初:例如,如果在 2021 年,则日期为 2020-01-01
  3. 去年年底:例如,如果在 2021 年,则日期为 2020-12-31
  4. 上个月的开始:例如,如果日期是 2021 年 5 月 3 日,那么这就是 2021-04-01
  5. 上个月的月底:例如,如果日期是 2021 年 5 月 3 日,那么这就是 2021-04-31

我有以下内容,它按预期显示,但我不确定如何使用 liquid 语法将它们分配为变量。

{% assign start_date = 'now' | date: '%s' %}

{% assign start_date_year = 'now' | date: '%Y' %}

这显示了预期的日期以及当前日期的年份。但是当我执行以下操作时,我没有得到 2020 年:

{% assign yoy_start = start_date_year | minus: 1 | date: '%Y-%m-%d' %}

单独的年份不是可以用 date 格式解析的有效日期字符串。您需要类似“2020 年 1 月 1 日”的日期。

这是一种使用日期格式的方法

{% liquid
assign this_year = 'now' | date: '%Y' 
assign last_year = this_year | minus: 1
assign last_year_start = "Jan 1st, " | append: last_year | date: '%Y-%m-%d'
%}

{{ last_year_start }}
// 2020-01-01

但直接做可能更容易

{% liquid
assign this_year = 'now' | date: '%Y' 
assign last_year_start = this_year | minus: 1 | append: '-01-01'
%}

{{ last_year_start }}
// 2020-01-01

添加了月份示例

这是一个可以找到上个月的示例(并且上个月在前一年的帐户)

{% liquid 
assign list_of_months = "12,01,02,03,04,05,06,07,08,09,10,11,12" | split: ","
assign last_month_index = 'now' | date: '%m' | minus: 1
assign last_month_year = 'now' | date: '%Y'
if last_month_index < 1
  assign last_month_year = last_month_year | minus: 1
endif
assign last_month_start = last_month_year | append: '-' | append: list_of_months[last_month_index] | append: '-01' 
%}

{{ last_month_start }}
// 2020-04-01

N.B.

请注意,Shopify 会缓存呈现的主题视图,因此使用 'now' 有时会产生意外结果。