回答編集履歴
3
コード修正(preg_match1回目に失敗したら、2回目を実施)
answer
CHANGED
@@ -5,18 +5,22 @@
|
|
5
5
|
// 年月日の各パーツを分割する
|
6
6
|
preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $date_str, $data );
|
7
7
|
|
8
|
-
|
8
|
+
if( empty($data) ) {
|
9
|
-
// 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
|
10
|
-
|
9
|
+
preg_match( "/([0-9]*)年([0-9]*)月/", $date_str, $data );
|
11
|
-
|
10
|
+
}
|
12
|
-
else if( Count( $data ) == 3 ) {
|
13
|
-
// 先頭0埋めでYYYYMM形式の日付文字列に変換する
|
14
|
-
$outStr = sprintf( "%04.4d/%02.2d/01", $data[1], $data[2] );
|
15
|
-
}
|
16
|
-
else {
|
17
|
-
$outStr = '';
|
18
|
-
}
|
19
11
|
|
12
|
+
if( Count( $data ) == 4 ) {
|
13
|
+
// 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
|
14
|
+
$outStr = sprintf( "%04.4d/%02.2d/%02.2d", $data[1], $data[2], $data[3] );
|
15
|
+
}
|
16
|
+
else if( Count( $data ) == 3 ) {
|
17
|
+
// 先頭0埋めでYYYYMM形式の日付文字列に変換する
|
18
|
+
$outStr = sprintf( "%04.4d/%02.2d/01", $data[1], $data[2] );
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
$outStr = '';
|
22
|
+
}
|
23
|
+
|
20
24
|
return strtotime($outStr);
|
21
25
|
}
|
22
26
|
?>
|
@@ -28,24 +32,24 @@
|
|
28
32
|
$normalize_time = normalizeTime($event_date1);
|
29
33
|
|
30
34
|
if( $normalize_time != false ) : ?>
|
31
|
-
|
35
|
+
<p class="year">
|
32
|
-
|
36
|
+
<?php echo date_i18n('Y', $normalize_time); ?>
|
33
|
-
|
37
|
+
年
|
34
|
-
|
38
|
+
</p>
|
35
39
|
|
36
|
-
|
40
|
+
<p class="month">
|
37
|
-
|
41
|
+
<?php echo date_i18n('m', $normalize_time); ?>
|
38
|
-
|
42
|
+
月
|
39
|
-
|
43
|
+
</p>
|
40
44
|
|
41
|
-
|
45
|
+
<?php // $event_date1に'日'という文字が含まれているか ?>
|
42
|
-
|
46
|
+
<?php if(strpos($event_date1,'日') !== false) : ?>
|
43
|
-
|
47
|
+
<p class="date">
|
44
|
-
|
48
|
+
<?php echo date_i18n('d', $normalize_time); ?>
|
45
|
-
|
49
|
+
日
|
46
|
-
|
50
|
+
</p>
|
47
|
-
|
51
|
+
<?php endif; ?>
|
48
52
|
<?php else : ?>
|
49
|
-
|
53
|
+
<p>日付の形式が無効です</p>
|
50
54
|
<?php endif; ?>
|
51
55
|
```
|
2
コード修正(年月形式をstrtotime\(\)に渡すとエラーになるので、日付を付加)
answer
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
}
|
12
12
|
else if( Count( $data ) == 3 ) {
|
13
13
|
// 先頭0埋めでYYYYMM形式の日付文字列に変換する
|
14
|
-
$outStr = sprintf( "%04.4d/%02.2d", $data[1], $data[2] );
|
14
|
+
$outStr = sprintf( "%04.4d/%02.2d/01", $data[1], $data[2] );
|
15
15
|
}
|
16
16
|
else {
|
17
17
|
$outStr = '';
|
1
コードの誤記訂正(if文のカッコ開くが多かった)
answer
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
// 年月日の各パーツを分割する
|
6
6
|
preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $date_str, $data );
|
7
7
|
|
8
|
-
if(
|
8
|
+
if( Count( $data ) == 4 ) {
|
9
9
|
// 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
|
10
10
|
$outStr = sprintf( "%04.4d/%02.2d/%02.2d", $data[1], $data[2], $data[3] );
|
11
11
|
}
|
12
|
-
else if(
|
12
|
+
else if( Count( $data ) == 3 ) {
|
13
13
|
// 先頭0埋めでYYYYMM形式の日付文字列に変換する
|
14
14
|
$outStr = sprintf( "%04.4d/%02.2d", $data[1], $data[2] );
|
15
15
|
}
|