質問編集履歴
1
解決コードを追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -53,4 +53,60 @@
|
|
53
53
|
しかし、テキストボックスに「●●●●年●●月」(年月のみ)で入力した場合、「1970年01月01日」と表示されてしまいます。
|
54
54
|
年月日、年月のどちらにも対応して、日付をバラして取得する方法を教えていただきたいです。
|
55
55
|
|
56
|
-
どうぞよろしくお願いいたします。
|
56
|
+
どうぞよろしくお願いいたします。
|
57
|
+
|
58
|
+
|
59
|
+
【追記】
|
60
|
+
無事解決しましたので、最終コードを記載させていただきます。
|
61
|
+
ご回答いただき、ありがとうございました。
|
62
|
+
|
63
|
+
functions.phpに以下を記入しました。
|
64
|
+
```ここに言語を入力
|
65
|
+
<?php
|
66
|
+
//カスタムフィールドの日付のフォーマット変更
|
67
|
+
function normalizeTime($date_str) {
|
68
|
+
// 年月日の各パーツを分割する
|
69
|
+
preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $date_str, $data );
|
70
|
+
if( empty($data) ) {
|
71
|
+
preg_match( "/([0-9]*)年([0-9]*)月/", $date_str, $data );
|
72
|
+
}
|
73
|
+
if( Count( $data ) == 4 ) {
|
74
|
+
// 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
|
75
|
+
$outStr = sprintf( "%04.4d/%02.2d/%02.2d", $data[1], $data[2], $data[3] );
|
76
|
+
}
|
77
|
+
else if( Count( $data ) == 3 ) {
|
78
|
+
// 先頭0埋めでYYYYMM形式の日付文字列に変換する
|
79
|
+
$outStr = sprintf( "%04.4d/%02.2d/01", $data[1], $data[2] );
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
$outStr = '';
|
83
|
+
}
|
84
|
+
return strtotime($outStr);
|
85
|
+
}
|
86
|
+
?>
|
87
|
+
```
|
88
|
+
htmlには、以下のように記入しています。
|
89
|
+
※曜日の取得も追加しています。
|
90
|
+
```ここに言語を入力
|
91
|
+
<?php $event_date1 = post_custom('event_date1');
|
92
|
+
$normalize_time = normalizeTime($event_date1);
|
93
|
+
if( $normalize_time != false ) : ?>
|
94
|
+
<p class="year"><?php echo date_i18n('Y', $normalize_time); ?>年</p>
|
95
|
+
<p class="month"><?php echo date_i18n('m', $normalize_time); ?>月</p>
|
96
|
+
|
97
|
+
<?php //テキストに日を含む場合
|
98
|
+
if(strpos($event_date1,'日') !== false) : ?>
|
99
|
+
<p class="date"><?php echo date_i18n('d', $normalize_time); ?>日</p>
|
100
|
+
<p class="week">(
|
101
|
+
<?php $date = date_i18n('Y/m/d', $normalize_time);
|
102
|
+
$week = array("日", "月", "火", "水", "木", "金", "土");
|
103
|
+
$time = strtotime($date);
|
104
|
+
$w = date("w", $time);
|
105
|
+
echo $week[$w]; ?>
|
106
|
+
)</p>
|
107
|
+
<?php else : ?><?php endif; ?>
|
108
|
+
|
109
|
+
<?php else : ?>
|
110
|
+
<p>日付の形式が無効です</p>
|
111
|
+
<?php endif; ?>
|
112
|
+
```
|