PHPには、日付・時刻を表示するdate()
関数が用意されています。WordPress(バージョン5.3以降)では、wp_date()
関数が利用できます。
PHPのdate()関数
date()
関数は、日付・時刻を所定の書式にする関数です。
date($format, $timestamp);
// 出力する場合は echo をつける
- $format は、[文字列]で、Y-m-d H:i:s 等の書式が入ります。Y:年4桁、m:月2桁、d:日2桁、H: 時(0-23)、i: 分、s: 秒、となります。月の表示は、mを指定すると常に2桁で01-12、nを指定すると1-12、となります。日の表示も同様に、dを指定すると常に2桁で01-31、jを指定すると1-31、となります。
- $timestamp は、[整数]で、Unixタイムスタンプが入ります。省略時は現在の時刻になります。
wp_date()関数
WordPressに用意されているwp_date()
関数も、date()
関数と同様に、日付・時刻を所定の書式にする関数です。
wp_date($format, $timestamp, $timezone);
// 出力する場合は echo をつける
- $format は、[文字列]で、Y-m-d H:i:s 等の書式が入ります。Y:年4桁、m:月2桁、d:日2桁、H: 時(0-23)、i: 分、s: 秒、となります。月の表示は、mを指定すると常に2桁で01-12、nを指定すると1-12、となります。日の表示も同様に、dを指定すると常に2桁で01-31、jを指定すると1-31、となります。
- $timestamp は、[整数]で、Unixタイムスタンプが入ります。省略時は現在の時刻になります。
- $timezone は、[DateTimeZone]で、タイムゾーンが入ります。省略時はWordPress管理画面のタイムゾーンになります。
タイムゾーンを明示的に指定する場合は、
$london_timezone = new DateTimeZone("Europe/London"); // タイムゾーンを決める
echo esc_html( wp_date(format: 'Y-m-d H:i:s', timezone: $london_timezone) ); // ロンドンの現在時刻を表示する *1
のようにすればOKです。 なお、*1 部分の記述はPHP8以降で使えます。詳細は、名前付きパラメータ(PHP8以降)をごらんください。
date()とwp_date()の違いは?
date()
とwp_date()
は、似通っている部分が多いですが、決定的に異なるのは、
wp_date()
ではタイムゾーンが管理画面で指定したものにセットされる
ですね。(もちろん、実行時にタイムゾーンを引数で指定すれば、そのタイムゾーンがセットされます。)
WordPressで日付・時刻を扱うのであれば、wp_date()
関数を使ったほうが楽なことが多いです。
更新日: