如果发帖时间在5小时内,则显示文本

时间:2016-02-06 作者:Clark

目前我有以下字符串。

$timeago = human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') );
print $timeago;
这将返回如下所示的结果。

1分钟、1小时、1周、1个月和1年。

我想知道如何使用if 声明,以检测该帖子是否在过去5小时内发布,以及是否有回音“NEW“如果没有,请不要重复任何内容。

EDIT: 我尝试了以下方法,但没有成功。。。我对如何让它检查小时部分以及我猜的数字部分感到困惑。

$timeago = human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') );
print $timeago;
if( $timeago >= 0 && $timeago <= 5 )
{
    print \'NEW\';
}

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

human_time_difference() 此处不起作用,因为它以人类可读的形式返回字符串。然而,我们可以使用其中使用的一些逻辑来构造可行的函数

您可以尝试以下操作:(Untested)

function get_custom__time_diff()
{
    global $post;

    // Get the current time
    $current_time = time();
    // Get the post date
    $post_date    = get_the_time( \'U\', $post );
    // Get the amount of seconds in 5 hours
    $test_time    = 5*HOUR_IN_SECONDS;
    $diff         = $current_time - $post_date;

    if ( $diff < $test_time )
        return \'New\';

    return \'\';
}
然后可以在循环内按如下方式调用它

echo get_custom__time_diff();