相对时间-如何计算发布后日期与当前时间的差额

时间:2014-10-02 作者:idjuradj

我想计算post的发布时间和当前时间之间的差值,我想将该值读取为一个数字(小时数、分钟数、秒数等等,我只想它是一个数字)。

原因是我想根据帖子的年龄做点什么。

这个代码行吗?

$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 个回复
最合适的回答,由SO网友:Robert hue 整理而成

要在帖子上自动打印相对时间,我们可以使用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\');
现在您可以使用$seconds 在您的if条件下。

结束

相关推荐

CURRENT_TIME(‘Timestamp’)似乎与实际当前时间不同

current\\u time(“timestamp”)是否存在问题?我试图获取当前的\\u时间(“时间戳”),而不是给我current time: Jun 26 2013 14:30 它给了我:Jun 26 2013 21:30 我试着检查秒数,它给了我:1372282238 这对于给定的时间是正确的,但对于real current time. 发生了什么事?