このサイトではアフィリエイト広告(Amazonアソシエイトを含む)を利用しています。

WordPress で時間を便利に扱う(読了想定)

ブログで記事を書いた日時を載せるときに、〇〇年〇〇月〇〇日、と載せるだけでなく、〇日前、といった表記もしておくと、訪問者にも分かりやすいですね。

このような時間の差分を計算してくれる関数が、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 : 年に対応しています。

更新日:

↑このページへのリンク

フリーランスの営業力アップに最適!ホームページを営業マンにする自動見積もりフォーム「マイ見積