WordPress にはあらかじめ用意されている定数があるが、今回は時間に関するものを紹介しよう。
はい、了解です!
WordPressの時間に関する定数
時間に関する定数には次のようなものが用意されています。
定数名 | 時間 | 値(秒数) |
---|---|---|
MINUTE_IN_SECONDS | 1分 | 60 |
HOUR_IN_SECONDS | 1時間 | 3600 |
DAY_IN_SECONDS | 1日 | 86400 |
WEEK_IN_SECONDS | 1週間 | 604800 |
MONTH_IN_SECONDS | 1ヶ月 | 2592000 |
YEAR_IN_SECONDS | 1年 | 31536000 |
この定数は、wp-includes/default-constants.php の中で次のように定義されています。
define( 'MINUTE_IN_SECONDS', 60 ); define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS ); define( 'DAY_IN_SECONDS', 24 * HOUR_IN_SECONDS ); define( 'WEEK_IN_SECONDS', 7 * DAY_IN_SECONDS ); define( 'MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS ); define( 'YEAR_IN_SECONDS', 365 * DAY_IN_SECONDS );
この定数を使って、set_transient 関数で値を12時間保存しておく例です。
$now = date_i18n( 'Y-m-d H:i:s' );
set_transient( 'last_access_datetime', $now, 12 * HOUR_IN_SECONDS );
まとめ
カスタマイズする時に、コードに数字を直接記述すると何を書いているのか分かりづらくなるので、こういう定数をできるだけ活用するとよい。
うん、86400
ってあるとぱっと見何のことか分からないけど、DAY_IN_SECONDS
と書いてあれば意味が通じやすくなるね。
ただし、1ヶ月や1年を指定したいときは注意が必要。月には31日ある月もあるし、1年もうるう年だったら366日に増える。これを使っても問題ないケースなのかどうか、ちゃんと判断することが大切じゃな。
了解しました!