Craft CMS で N 日以内のエントリーに NEW アイコンを付ける(日付の比較)

Craft CMS で2つの日時を比較し、N日以内のエントリーに NEW アイコンを付ける方法をご紹介します。

Craft CMS Logo

Craft CMS でエントリーの投稿日と今日の日付を比較し、N日以内なら NEW マークを付けるというのをやってみたいと思います。

なお、下記のお話は、 entry という変数にエントリーの情報が入っているコンテキストでのお話になります。

投稿日と今日を比較する

エントリーの投稿日は {{ entry.postDate }} で取得できます。

また、今日というか現在の日時は now で取得できます。

そこで、この2つの日付の差分は下記のようにして取得できます。

{% set postDateDiff = entry.postDate.diff(now) %}

これで変数 postDateDiff に2つの日時の差がセットされます。何年何ヶ月などの日時の差の詳細な情報は、それぞれ y, m, d, h, i, s というキーで取得できます。

したがって、投稿日が今日から5日以内のエントリーに NEW マークを付ける場合は、下記のような条件分岐になります。

{% if postDateDiff.y == 0 and postDateDiff.m == 0 and postDateDiff.d <= 5 %}
NEW!
{% endif %}

簡単に実装できましたね!

以上です。

Published 2017-06-29
Updated 2019-06-25