Contents
Overview
WordPress で、現在からの経過日数を出力するショートコードを作成してみました。
仕様
仕様は以下の通りです。
- 現在の日時を取得する。
- 引数から指定された日付を作成する。
- 現在の日時と引数の日付の差を計算する。
- 差から年数、月数、日数を取得する。
- 年数、月数、日数を表示用の変数に追加する。
- 出力を返する。
コード
コードは下記の通りです。
// 年月日計算表示ショートコード function calcYmdFunc($attr) { // 現在の日時を取得 $now = new DateTime(); // 引数から日付を作成 $ymd = DateTime::createFromFormat('Ymd', $attr[0]); // 現在の日時と引数の日付の差を計算 $interval = $now->diff($ymd); // 年数、月数、日数を取得 $years = $interval->y; $months = $interval->m; $days = $interval->d; // 出力用の変数を初期化 $output = ''; // 年数が0より大きい場合、年数を出力に追加 if ($years > 0) { $output .= $years . '年'; } // 月数が0より大きい場合、月数を出力に追加 if ($months > 0) { $output .= $months . 'ヶ月'; } // 日数が0より大きい場合、日数を出力に追加 if ($days > 0) { $output .= $days . '日'; } // 出力を返す return $output; } // ショートコード 'calc_ymd' を登録 add_shortcode('calc_ymd', 'calcYmdFunc');
利用方法
例えば、下記のように引数に YYYYMMDD の形式で日付を入力して投稿を作成すると、「44年8ヶ月19日」のように表示されます。
[calc_ymd 19800101]
WordPress 現在からの経過日数を出力するショートコード