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 ); ?>

Exemple

Voici deux exemples disponibles sur le CODEX :

Pour la date de publication d’un post

<?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.

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Afficher le commentaire

1 commentaire