Smarty で指定日時からの数日前・数日後などを表示

今更 Smarty ネタですが。

「現在日時」から○日後とか○日前とかの情報は多数あるのですが

指定日時」からの○日後に関する情報がなかったのでメモ。

$target_date = '2019-05-01'


2019年5月1日の10日後

{(($target_date|strtotime)+24*60*60*10)|date_format:'%Y-%m-%d'}



2019年5月1日の10日前


{(($target_date|strtotime)-24*60*60*10)|date_format:'%Y-%m-%d'}


2019年5月1日の1年後


{(($target_date|strtotime)-24*60*60*365)|date_format:'%Y-%m-%d'}

DATE型の$target_dateを一度Unixタイムに変換してから、時間を加(減)算します。

その後、date_format で再度DATE型に変換しています。

ちなみにおなじみの現在日時からの比較は以下


現在日時から比較して明日

{($smarty.now+24*60*60)|date_format:'%Y-%m-%d'}



参考記事

Smartyで数日前/数日後を計算