Human_time_diff()为所有评论返回“48年前”

时间:2017-08-24 作者:Dave

正在尝试创建自定义注释框。当我去显示评论发布的时间(如2天前、3小时前等)时,我得到的每个帖子上的每个评论都是相同的:“48年”

$args = array(
        \'number\'  => \'4\',
        \'post_id\' => $id, // use post_id, not post_ID
);

$comments = get_comments( $args );

foreach ( $comments as $comment ) :

    // get the comments contents    

    echo $comment->comment_content;

    // human readable time when it was posted
    //
    // this is where we get the "48 years" as when it was posted
    //

    echo human_time_diff( $comment->comment_date, current_time( \'timestamp\', 1 ) );

endforeach;
怎么了?

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

您应该使用strtotime 将注释的日期转换为可以与当前时间进行比较的字符串。在您的情况下,您应该使用:

echo human_time_diff( strtotime( $comment->comment_date ), current_time( \'timestamp\', 1 ) );

结束

相关推荐

我可以将我的定制COMMENT_TYPE存储到wp_Comments表中吗?

我正在开发一个系统,一篇帖子可以有多个回复/反馈。到目前为止,我将每个注释存储为序列化postmeta. 但就在今天,我发现我可以使用现有的comments 用于相同目的的表commentmeta 表I也可以在那里存储其他数据。所以我用wp_insert_comment(), 我希望更健壮的是wp_new_comment(), 在那里我介绍了comment_type 参数我发现它存储:null 对于默认注释类型“comments”,请参见pingback 对于“pingbacks”,和trackbacks