human_time_diff() の使い方|説明・引数・注意点

説明

human_time_diff() は、2つの時刻の差を、「3時間」のような読みやすい文字列で返す関数です。

基本構文

human_time_diff( int $from, int $to = 0 ): string

引数

  • $from:開始のUNIXタイムスタンプ
  • $to:終了のUNIXタイムスタンプ(省略すると現在)

戻り値

時間差の文字列。

使い方(サンプル)

echo esc_html( human_time_diff( get_the_time( 'U' ) ) . '前' );

注意点

  • 日本語環境では「3 時間」のように返ります。

実務での使いどころ

  • 「3時間前」「2日前」のような、経過時間を表示するとき。

よくあるミスと対処

  • 戻り値に、「前」が付かない。「3 時間」のような文字列なので、sprintf() などで、「前」を足す。
  • 渡すのは、UTCのタイムスタンプ。文字列の日時を、strtotime() で変換すると、タイムゾーンで、ずれる。
  • $to を省略すると、現在時刻(time())になる。

NG例

echo human_time_diff( strtotime( $post->post_date ) ); // タイムゾーンで、ずれる。「前」も付かない

OK例

$ago = human_time_diff( get_post_time( 'U', true ), time() );
echo esc_html( sprintf( '%s前', $ago ) );

使い分け早見表

やりたいこと 使うもの
経過時間を、文字列で表示 human_time_diff()
日付を、書式を指定して表示 wp_date()
投稿の、UTCのタイムスタンプを取得 get_post_time( 'U', true )

関連項目

wp_date()、current_time()、get_the_date()

公式リファレンス:human_time_diff() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました