Nous connaissons tous Facebook ou Twitter, et nous avons tous remarqué l’apparition avec eux de nouvelles tendances.
L’une d’entre elle est d’afficher une date non au format classique « Publié le 10 Janvier 2014 à 10h40 », mais plutôt d’une manière plus parlante « Publié il y a 6 mois ». C’est ce qui est appelé par WordPress un « human readable format ».
Il existe donc une fonction WordPress toute faite (pas toute jeune) et de plus en plus utilisé (tendance oblige). Il s’agit de human time diff
Cette fonction comprend deux paramètres, le premier étant la date « initiale » et le second est la date avec laquelle on va la comparer.
<?php human_time_diff( $from, $to ); ?>
<?php echo 'Il y a '. human_time_diff( get_the_time('U'), current_time('timestamp') ); ?>
Pour la date de publication d’un commentaire
<?php echo 'Il y a '. human_time_diff( get_comment_time('U'), current_time('timestamp') ); ?>
Améliorer l’affichage
Il existe de nombreuses améliorations possibles à cette fonction. En voici deux qui valent le coup.
Celle de Binary Moon est, je trouve, très intéressante. Il part du principe qu’afficher une date de manière classique est finalement plus représentatif et clair au bout de 60 jours plutôt que d’afficher « il y 15 mois ».
function bm_human_time_diff_enhanced( $duration = 60 ) { $post_time = get_the_time('U'); $human_time = ''; $time_now = date('U'); // use human time if less that $duration days ago (60 days by default) // 60 seconds * 60 minutes * 24 hours * $duration days if ( $post_time > $time_now - ( 60 * 60 * 24 * $duration ) ) { $human_time = sprintf( __( '%s ago', 'binarymoon'), human_time_diff( $post_time, current_time( 'timestamp' ) ) ); } else { $human_time = get_the_date(); } return $human_time; } //usage echo bm_human_time_diff_enhanced();
Voici une seconde astuce plus radicale qui consiste à hooker la fonction the_time() : A better way to add “time ago” to your WordPress theme.
Super Merci beaucoup pour ce code