如何在Liquid中将字符串更改为日期?

时间:2019-11-08 21:05:25

标签: liquid

我正在尝试从IVR或电话中以数字形式输入,并希望将字符串转换为日期,以便在重复输入的数字时将其重复作为日期。例如,它应显示为09011990,即1990年9月1日。我使用了{{widgets.Date.Digits |分割:“” |加入:“,”}}作为上一个输入的位置,我将所有数字分隔开,但是找不到一种方法,我可以将数字分隔为月份的2位,日期的2位和年份的4位并使用一个“ /”,以便可以将其区分为日期。

1 个答案:

答案 0 :(得分:0)

如果您知道您的“日期数字”将始终保持相同的顺序,则可以使用slice过滤器将数字的不同部分分配给变量。例如,假设我们将日期作为名为date_digits的变量输入:

{%- assign month = date_digits | slice: 0, 2 %}
{%- assign day   = date_digits | slice: 2, 2 %}
{%- assign year  = date_digits | slice: 4, 4 %}

然后,我们可以使用capture将所有三个值组合成一个可由date过滤器解析的字符串。根据我的测试,date过滤器确实更喜欢订单的日期,月份,年份:

{%- capture date_string %}{{ day }}/{{ month }}/{{ year }}{%- endcapture %}

最后,我们可以使用date过滤器来显示我们可读的日期:

{{ date_string | date: "%B %d, %Y" }}

产生September 01, 1990

这是一个非常脆弱的解决方案,但是可以仅使用Liquid。