WordPress 5.3 で導入される日時の関数とフィルター

はじめに

WordPress 5.3 は11月にリリース予定ですが、以下の様な記事を見つけました。

新しい日時の関数とフィルターが導入されるという事で、日時の関数とフィルターを多数使用している自分のプラグイン Wareki をベータ版でテストした所、動作しない箇所があったので修正しました。その際に、いろいろテストしたので一部の関数とフィルターを以下に紹介します。

関数

wp_date( $format, $timestamp = null, $timezone = null )

date_i18n 関数の後継だと思います。

  • 第1引数 PHP の日時のフォーマット
  • 第2引数 Unix タイムスタンプ
  • 第3引数 タイムゾーン
  • 返り値 書式化された日時の文字列もしくは False

第3引数がポイントでデフォルトではサイトで設定したタイムゾーンが入ってきます。使い方は以下の様に書きます。現在の日時を出すだけなら、第2引数・第3引数は省略します。

$date_ux = 1569422086;
$date = wp_date( 'Y-m-d H:i:s', $date_ux, new DateTimeZone( 'UTC' ) );

以前 data_i18n 関数では、前後のコード次第で9時間ずれたりして苦労した事があったのですが、この関数ではそのような事はなくなりました。


current_datetime()

以下の様な日時のオブジェクトを返します。

DateTimeImmutable Object ( [date] => 2019-09-25 23:34:46.584458 [timezone_type] => 3 [timezone] => Asia/Tokyo ) 

フィルター

apply_filters( 'wp_date', $date, $format, $timestamp, $timezone )
  • 第1引数 書式化された日時の文字列
  • 第2引数 PHP の日時のフォーマット
  • 第3引数 Unix タイムスタンプ
  • 第4引数 タイムゾーン返り値 日時の文字列もしくは False

この記事を書いた人