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