Order.created_at の条件分岐

記載されたコードは数値ではなく文字列なので左辺と右辺の比較ができず動きません。

興味がありましたので以下試作してみました。

{% assign Y = order.created_at | date: "%Y" | times:1  %}
{% assign M = order.created_at | date: "%-m" | times:1  %}
{% assign D = order.created_at | date: "%-d" | times:1 %}
{% if Y >= 2021 and M >= 8 and D > 8  %}
  

2021年8月8日より新しい

{% else %}
  

2021年8月8日かそれより古い

{% endif %}

流れとしては以下のようになります。

  1. 年と月と日を個別に取得
  2. 1を掛けて文字列の数字を数値に変換して変数にいれる
  3. 年の数値が指定以上、かつ、月の数値が指定以上、かつ、日の数値が指定よりも多い、という条件で分岐を作成

試していませんが仮に時間まで判定する場合でも同様にしてできるかなと思います。

こういった場合は秒数に変換して比較するのが一般的なようにも思いますが、今回の用途であればこのような形でもよいかなと考えました。

以上ですが、動かなかったり問題があるコードでしたら申し訳ありません。