order.created_at の条件分岐

TSnk
新規メンバー
2 0 0

order.created_at(注文日時)に対して、特定の日付以降のif分岐の記述ですが、どのような書き方が適切でしょうか。

{%- if order.created_at | date: "%Y/%m/%d" > '2021-07-29 12:00:00' -%}

で記述をしましたが、うまく行かなかったため。

0 件の「いいね!」
Jizo_Inagaki
航海者
424 157 432

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

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

{% 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  %}
  <p>2021年8月8日より新しい</p>
{% else %}
  <p>2021年8月8日かそれより古い</p>
{% endif %}

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

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

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

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

 

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

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
0 件の「いいね!」