質問編集履歴

1

解決コードを追加しました。

2017/02/17 07:44

投稿

jester
jester

スコア11

test CHANGED
File without changes
test CHANGED
@@ -109,3 +109,115 @@
109
109
 
110
110
 
111
111
  どうぞよろしくお願いいたします。
112
+
113
+
114
+
115
+
116
+
117
+ 【追記】
118
+
119
+ 無事解決しましたので、最終コードを記載させていただきます。
120
+
121
+ ご回答いただき、ありがとうございました。
122
+
123
+
124
+
125
+ functions.phpに以下を記入しました。
126
+
127
+ ```ここに言語を入力
128
+
129
+ <?php
130
+
131
+ //カスタムフィールドの日付のフォーマット変更
132
+
133
+ function normalizeTime($date_str) {
134
+
135
+ // 年月日の各パーツを分割する
136
+
137
+ preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $date_str, $data );
138
+
139
+ if( empty($data) ) {
140
+
141
+ preg_match( "/([0-9]*)年([0-9]*)月/", $date_str, $data );
142
+
143
+ }
144
+
145
+ if( Count( $data ) == 4 ) {
146
+
147
+ // 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
148
+
149
+ $outStr = sprintf( "%04.4d/%02.2d/%02.2d", $data[1], $data[2], $data[3] );
150
+
151
+ }
152
+
153
+ else if( Count( $data ) == 3 ) {
154
+
155
+ // 先頭0埋めでYYYYMM形式の日付文字列に変換する
156
+
157
+ $outStr = sprintf( "%04.4d/%02.2d/01", $data[1], $data[2] );
158
+
159
+ }
160
+
161
+ else {
162
+
163
+ $outStr = '';
164
+
165
+ }
166
+
167
+ return strtotime($outStr);
168
+
169
+ }
170
+
171
+ ?>
172
+
173
+ ```
174
+
175
+ htmlには、以下のように記入しています。
176
+
177
+ ※曜日の取得も追加しています。
178
+
179
+ ```ここに言語を入力
180
+
181
+ <?php $event_date1 = post_custom('event_date1');
182
+
183
+ $normalize_time = normalizeTime($event_date1);
184
+
185
+ if( $normalize_time != false ) : ?>
186
+
187
+ <p class="year"><?php echo date_i18n('Y', $normalize_time); ?>年</p>
188
+
189
+ <p class="month"><?php echo date_i18n('m', $normalize_time); ?>月</p>
190
+
191
+
192
+
193
+ <?php //テキストに日を含む場合
194
+
195
+ if(strpos($event_date1,'日') !== false) : ?>
196
+
197
+ <p class="date"><?php echo date_i18n('d', $normalize_time); ?>日</p>
198
+
199
+ <p class="week">(
200
+
201
+ <?php $date = date_i18n('Y/m/d', $normalize_time);
202
+
203
+ $week = array("日", "月", "火", "水", "木", "金", "土");
204
+
205
+ $time = strtotime($date);
206
+
207
+ $w = date("w", $time);
208
+
209
+ echo $week[$w]; ?>
210
+
211
+ )</p>
212
+
213
+ <?php else : ?><?php endif; ?>
214
+
215
+
216
+
217
+ <?php else : ?>
218
+
219
+ <p>日付の形式が無効です</p>
220
+
221
+ <?php endif; ?>
222
+
223
+ ```