このサイトではアフィリエイト広告を利用しています。

date()とwp_date()の違い

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()関数を使ったほうが楽なことが多いです。

更新日:

↑このページへのリンク