web-dev-qa-db-fra.com

Heure relative - comment calculer la différence entre la date de publication et l'heure actuelle

Je veux calculer la différence entre l'heure de publication de l'article et l'heure actuelle, et lire cette valeur sous forme de nombre (nombre d'heures, de minutes, de secondes, peu importe, je veux simplement que ce soit un nombre).

La raison est que je veux faire quelque chose en fonction de l'âge du poste.

Ce code fonctionnerait-il?

$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 {
    ...
}

Ce bit de code est-il valide?

1
idjuradj

Pour imprimer automatiquement l'heure relative sur les publications, nous pouvons utiliser le filtre get_the_date. Nous allons vérifier le décalage horaire et l’imprimer sous une forme lisible par l’homme.

// 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

Et dans votre thème, utilisez <?php echo get_the_date(); ?> pour imprimer l'heure relative.

Si vous n'avez pas besoin de temps relatif pour les commentaires, supprimez ce qui suit du code.

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

MODIFIER

Pour obtenir le décalage horaire en secondes. Utilisez ceci.

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

Vous pouvez maintenant utiliser $seconds dans vos conditions if.

1
Robert hue