ブログで記事を書いた日時を載せるときに、〇〇年〇〇月〇〇日、と載せるだけでなく、〇日前、といった表記もしておくと、訪問者にも分かりやすいですね。
このような時間の差分を計算してくれる関数が、WordPressには用意されています。
human_time_diff()関数
human_time_diff()
関数は、開始時間と終了時間を指定すると、差分を計算してくれます。戻ってくるデータは、「2時間」「3か月」など、人にとって分かりやすい表記になります。
human_time_diff($from, $to);
- $from は、[整数]で、開始時間をUnixタイムスタンプで指定します。
- $to は、[整数]で、終了時間をUnixタイムスタンプで指定します。未指定の場合は「現在の時刻」
戻り値は、秒、分、時間、日、月、年のいずれかに換算した時刻+時刻の単位です。時刻の単位はローカライズされます。
コード例
human_time_diff()
関数を活用したコード例です。記事を公開した時間の差分を表示する、を実行してみます。
echo esc_html( human_time_diff( get_the_time( 'U' ) ) );
get_the_time()
は記事の投稿時刻を取得します。引数で時刻の形式が指定でき、U を指定するとUnixタイムスタンプになります。
Unixタイムスタンプをhuman_time_diff()
に渡すことで、記事を公開した時間の差分を表示できます。
秒数を示す定数
human_time_diff()
関数のコードを見ると、MINUTE_IN_SECONDS、HOUR_IN_SECONDSといった定数が使われています。
この関数に限らず、プログラムでは、「クッキーの保存期間を1日にする」「セッションの保存時間を30分にする」「1時間に一回ランキング更新処理をする」など、時間を扱うことがよくあります。
このようなときに便利になるよう、WordPressでは秒数を示す定数が用意されています。
wp-includes/default-constants.php の中に、秒数を示す定数が定義されています。
define( 'MINUTE_IN_SECONDS', 60 ); // 1分 = 60秒
define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS ); // 1時間 = 60分 = 3600秒
define( 'DAY_IN_SECONDS', 24 * HOUR_IN_SECONDS ); // 1日 = 24時間 = 1440分 = 86400秒
define( 'WEEK_IN_SECONDS', 7 * DAY_IN_SECONDS ); // 1週間 = 7日
define( 'MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS ); // 1月 = 30日
define( 'YEAR_IN_SECONDS', 365 * DAY_IN_SECONDS ); // 1年 = 365日
MINUTE_IN_SECONDS : 分、 HOUR_IN_SECONDS : 時間、DAY_IN_SECONDS : 日、 WEEK_IN_SECONDS : 週、 MONTH_IN_SECONDS : 月、 YEAR_IN_SECONDS : 年に対応しています。
更新日: