MTで、イベント終了日を過ぎたら所定の終了メッセージを表示したいとかいう時に使えそうな技のメモ。
日付を比較して処理を分ける方法について、
検索したら 再構築日と更新日を紀元からの日数に変換して判定処理する記事 など出てきたのですが、単純な比較でいいなら 実はformatモディファイアを使って もっと簡単にできるんじゃないかと思いました。
再構築日とイベント終了日を比較する
日時を yyyymmddhhmmss 書式(日や時刻は0補完)にして比較判定するだけです。
<!-- 再構築日時を yyyymmddhhmmssの数値として rebuilt_daysにセットする --> <mt:Date format="%Y%m%d%H%M%S" setvar="rebuilt_days"> <!-- イベント終了日時を yyyymmddhhmmssの数値としてevent_daysにセットする --> <mt:If tag="event_end_date"> <mt:event_end_date format="%Y%m%d%H%M%S" setvar="event_days"> <mt:Else> <mt:EntryDate format="%Y%m%d%H%M%S" setvar="event_days"> </mt:If> <mt:If name="event_days" lt="$rebuilt_days" note="終了したイベントの場合"> <p class="center attention alert">イベント終了メッセージ</p> </mt:If>
この方法は日数差で判定するのには向かないので 、「公開後一定期間はnewを表示したい」ようなケースでは、 冒頭に紹介した紀元からの日数に変換して判定処理する方法が良いと思う。
参考
日付に関するテンプレートタグのモディファイアリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
https://www.movabletype.jp/documentation/appendices/date-formats.html
MT タグ 日付比較 更新日と登録日を比較してnew表示 | gworks web site
https://www.gworks.jp/2013/01/mt-new-badge-onoff