web-dev-qa-db-ja.com

相対時間 - 公開後の日付と現在の時間の差を計算する方法

投稿の公開時間と現在の時間の差を計算したいし、その値を数値として読みたい(時間数、分数、秒数にかかわらず、単に数値にしたい)。

その理由は、私は役職の年齢に応じて何かをしたいのです。

このコードは機能しますか?

$date = get_post_time('G', true, $post);
$current_time = current_time( 'mysql', $gmt = 0 );
$newer_date = strtotime( $current_time );

$postsage = $newer_date - $date;

if($postsage < 7200){
    ...
} 
// if post is between one and two hours old
else if (($postsage >= 7200) && ($postsage <=14400)){ 
   ...
}
else {
    ...
}

このコードビットは有効ですか?

1
idjuradj

投稿の相対時間を自動的に印刷するには、get_the_dateフィルタを使用できます。時差を確認し、人間が読める形式で印刷します。

// Relative date & time
function wp_relative_date() {
  return human_time_diff( get_the_time('U'), current_time( 'timestamp' ) ) . ' ago';
}
add_filter( 'get_the_date', 'wp_relative_date' ); // for posts
add_filter( 'get_comment_date', 'wp_relative_date' ); // for comments

そしてあなたのテーマでは相対時間を表示するために<?php echo get_the_date(); ?>を使います。

あなたがコメントのために相対的な時間を必要としないならば、コードから下記を削除してください。

add_filter( 'get_comment_date', 'wp_relative_date' ); // for comments

EDIT

秒単位で時差を取得します。これを使って。

$seconds = current_time( 'timestamp' ) - get_the_time('U');

これでif条件に$secondsを使うことができます。

1
Robert hue