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 の形式で日付を入力して投稿を作成すると、「45年10ヶ月9日」のように表示されます。
[calc_ymd 19800101]
WordPress 現在からの経過日数を出力するショートコード



