teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記修正

2019/06/18 10:20

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  [Smarty マニュアル](https://www.smarty.net/docsv2/ja/index.tpl) をみると Smarty には、日付を計算する関数は用意されていないので、すでに記載されている通り PHP の `strtotime` 関数を使うのが、普通の方法でしょうか。
2
2
 
3
-
3
+ (あまり薦めませんが...)テンプレートの中で PHP 関数を実行するとしては、
4
4
  ```
5
5
  {php}
6
6
  $nextmonth = strtotime("+1 month");

1

追記

2019/06/18 10:20

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ----
14
14
 
15
- どうしても Smarty の中で計算処理をしたいということであれば、[math関数](https://www.smarty.net/docsv2/ja/language.function.math.tpl) で、簡単な計算ができるので、自分で日付の計算式を書くことで日付計算はできると思います。( $smarty.now に対して、必要な日数分の秒数を加算・減算する )
15
+ どうしても PHP ではなく Smarty の中で日付の計算処理をしたいということであれば、[math関数](https://www.smarty.net/docsv2/ja/language.function.math.tpl) で、簡単な計算ができるので、自分で日付の計算式を書くことで日付計算はできると思います。( $smarty.now に対して、必要な日数分の秒数を加算・減算する )
16
16
 
17
17
  たとえば、30日後の日付を表示。
18
18
  ```
@@ -20,4 +20,4 @@
20
20
  {$nextdays|date_format:"%Y/%m/%d"}
21
21
  ```
22
22
 
23
- 前後1〜2週間の日付ならともかく、3ヶ月後や1年後となると 月の日数(28日〜31日)の判別やうるう年等の処理も自分で処理しないとダメなので、素直に PHP で計算して、テンプレート変数に割り当てるのが無難だと思います。
23
+ 前後1〜2週間の日付ならともかく、3ヶ月後や1年後となると 月の日数(28日〜31日)の判別やうるう年等の処理も自分で処理しないとダメなので、**素直に PHP で計算して、テンプレート変数に割り当てるのが無難だと思います**