
WordPressで取得した日付を 和暦で表示する方法
カテゴリ:WEB制作

サイトを運用していると和のテイストのデザインや、官公庁、自治体関連の「令和◯年◯月◯日」という表示が必須になることがあります。WordPressでは標準のget_the_date()やget_the_time()で取得できる日付は西暦ですが、PHPのIntlDateFormatterクラスを活用することで、簡単に和暦に変換して表示することができます。
今回はWordpressで取得した日付を 和暦で表示する方法を紹介します。
コードを紹介
<?php $date = get_the_date('Y-m-d'); // 日付を2025-08-19で取得 $date_obj = new DateTime($date); //日付オブジェクトの作成 $format = new IntlDateFormatter( //IntlDateFormatterで国ごとの日付表示の書式に変更 'ja_JP@calendar=japanese', // 日本語のカレンダーに合わせます。 IntlDateFormatter::LONG, //2025年8月19日火曜日と詳細を記載する長い記述に変換します。 IntlDateFormatter::NONE, //時刻を出力しないようにします。 'Asia/Tokyo', //タイムゾーンの指定 IntlDateFormatter::TRADITIONAL, // 日本の和暦を使用します。 'Gy年M月d日' //Gは元号を取得、yは年、Mが月、dが日です。 ); echo $format->format($date_obj); //日付のオブジェクトを和暦に変換して出力をかけます。 ?>
コードを解説
以下で投稿の日付を取得します。
$date = get_the_date('Y-m-d');
2025-08-19のような形式で取得することができます。
この形式から日付のオブジェクトを作成します。
$date_obj = new DateTime($date);
IntlDateFormatterでその国や文化のカレンダーや書式に合わせてフォーマットを変換します。
$format = new IntlDateFormatter( 'ja_JP@calendar=japanese', IntlDateFormatter::LONG, IntlDateFormatter::NONE, 'Asia/Tokyo', IntlDateFormatter::TRADITIONAL, 'Gy年M月d日' );
‘ja_JP@calendar=japanese’で日本のカレンダーに形式を合わせます。
IntlDateFormatter::LONGでは2025年8月19日火曜日と詳細を記載する長い記述に変換します。
LONGの部分を変更することで形式を変更できます。
以下、参考です。
IntlDateFormatter::FULL | 2025年8月19日火曜日 |
IntlDateFormatter::LONG | 2025年8月19日 |
IntlDateFormatter::MEDIUM | 2025/08/19 |
IntlDateFormatter::SHORT | 25/08/19 |
IntlDateFormatter::NONEでは時刻の出力を削除しています。
‘Asia/Tokyo’はタイムゾーンを設定しています。
IntlDateFormatter::TRADITIONALで日本の和暦を使用します。
‘Gy年M月d日’でやっと日付の形式が完成します。
Gは元号を取得、yは年、Mが月、dが日です。
最後に日付のオブジェクトを和暦に変換して出力をかけます。
echo $format->format($date_obj);
まとめ
以上、『Wordpressで取得した日付を 和暦で表示する方法』でした。
WordPressの日付取得関数とPHPのIntlDateFormatterを組み合わせれば、投稿日の西暦を和暦に変換して出力できます。
和暦表示を求められる場面は稀に出てきますので、ぜひ、ご参考ください。