Shopifyで曜日を日本語で出力する方法

Shopifyの日付出力はRubyなので、「○曜日」といった日本語で曜日を扱う方法は用意されていません。

今回はJavascriptを使わず、liquidのみで日本語で曜日を出力する方法をご紹介します。

{%- assign weekday = 'now' | date: '%a' -%}
{%- capture weekday_jp -%}
{%- if weekday == 'Sun' -%}
{{- '日曜日' -}}
{%- elsif weekday == 'Mon' -%}
{{- '月曜日' -}}
{%- elsif weekday == 'Tue' -%}
{{- '火曜日' -}}
{%- elsif weekday == 'Wed' -%}
{{- '水曜日' -}}
{%- elsif weekday == 'Thu' -%}
{{- '木曜日' -}}
{%- elsif weekday == 'Fri' -%}
{{- '金曜日' -}}
{%- elsif weekday == 'Sat' -%}
{{- '土曜日' -}}
{%- endif -%}
{%- endcapture -%}
今日は{{ 'now' | date: '%Y年%-m月%-d日' | append: weekday_jp }}です。

このコードで「今日は○年○月○日○曜日です。」という出力結果になります。

説明しますと、1行目で本日の曜日を取得し{{ weekday }}で呼び出せるようにします。

続いて2〜18行目で、今日の曜日を日本語に変換し{{ weekday_jp }}で呼び出せるようにします。
例えば今日の曜日が「Sun」だった場合、「日曜日」という文字列を出力するという感じです。

最後にHTMLに出力します。
一般的には「%Y年%m月%d日」と書くことが多いですが、「01」とかゼロから始まる数値はあまり日本的ではないので、「%Y年%-m月%-d日」としています。
今日の日付を出力する、{{ 'now' | date: '%Y年%-m月%-d日' }}に加え、2〜18行目で定義した{{ weekday_jp }}を「append」を使って末尾に加えることで、「○年○月○日○曜日」という出力結果となります。

ブログの投稿日に使用する場合は、「'now'」の部分を2箇所「article.published_at」に変更するだけですね。

曜日をカッコで囲みたいなら、2〜18行目内の文字列を「{{- '(日)' -}}」とかに書き換えればよいです。

今回は短めの記事ですが、現在は商品ページに出荷予定日を出力するコードを開発中でして、その流れで思いついたカスタマイズです。

需要があるかどうかはわかりませんが、僕のメモとして残しておきます。