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

回答編集履歴

1

add

2015/08/24 09:45

投稿

ngyuki
ngyuki

スコア4516

answer CHANGED
@@ -1,7 +1,21 @@
1
- Smarty の date_format はとても気持ち悪い実装になっておりまして・・・次のようにしても大丈夫です。
1
+ Smarty の `date_format` はとても気持ち悪い実装になっておりまして・・・次のようにしても大丈夫です。
2
2
 
3
3
  ```
4
4
  {$hoge.hoge_start|date_format:"Y年n月"}
5
5
  ```
6
6
 
7
- ※Smarty2 だとどうなのかは判りません。
7
+ ※Smarty2 だとどうなのかは判りません。
8
+
9
+ ---
10
+
11
+ > Warning: Invalid CRT parameters detected
12
+
13
+ なお、このエラーは恐らく下記の理由により発生しています。
14
+
15
+ - Smarty の `date_format` は(普通は)PHP の `strftime` を使用している
16
+ - PHP の `strftime` は OS の `strftime` を使用している
17
+ - Windows と Linux で `strftime` で使用可能な書式が微妙に違う
18
+
19
+ 一方 `date_format` で `%` を使わなければ PHP の `date` が使われます。
20
+
21
+ PHP の `date` は PHP 内部で実装されているので(だったはず)、`strftime` のような OS に依存する問題は起こりにくいです。