web-dev-qa-db-fra.com

human_time_diff () renvoie "il y a 48 ans" pour tous les commentaires

Essayer de créer une boîte de commentaires personnalisée. Lorsque je vais afficher l'heure à laquelle le commentaire a été publié (c'est-à-dire il y a 2 jours, 3 heures, etc.), je reçois le même message pour chaque commentaire de chaque message: "48 ans"

$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;

Quoi de neuf avec ça?

3
Dave

Vous devez utiliser strtotime pour transformer la date du commentaire en chaîne pouvant être comparée à l'heure actuelle. Dans votre cas, vous devriez utiliser:

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