回答編集履歴
2
追記修正
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
追記
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 で計算して、テンプレート変数に割り当てるのが無難だと思います**。
|