WEB制作、マーケティングに関する情報をお届けします。ホームページ制作会社、テラのブログ

WordPressで取得した日付を 和暦で表示する方法

タグ:

サイトを運用していると和のテイストのデザインや、官公庁、自治体関連の「令和◯年◯月◯日」という表示が必須になることがあります。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を組み合わせれば、投稿日の西暦を和暦に変換して出力できます。
和暦表示を求められる場面は稀に出てきますので、ぜひ、ご参考ください。

テラ合同会社(東京都)

テラは2014年に東京都でスタートアップしたホームページ制作会社です。ホームページ制作以外にも広告運用、マーケティング、ブランディング、印刷物など幅広い領域をサポートしています。
コーポレートサイトはこちらをご覧ください。