23.3.4. human_time_diff()

Im aller ersten Kapitel habe ich die gemeine Funktion human_time_diff() bereits erwähnt. Viele Entwickler programmieren eigene Funktionen die nur eines machen soll: einen Zeitstempel in einer von Menschen lesbaren Form darstellen. Dabei existiert seit Version 1.5.0 bereits eine solche Funktion!

function human_time_diff( $from, $to = '' ) {
   ...
}

Es gilt:

  • $from (int) Unix-Zeitstempel von der die Differenz beginnt.
  • $to (int) Optionaler Unix-Zeitstempel der Endzeit der Differenz. Als Standard wurde time() eingestellt.

Zurückgegeben wird ein string der Zeitdifferenz in einer von Menschen lesbaren Form.

Die Funktion kommt in WordPress selbst eigentlich recht häufig zum Einsatz. Umso interessanter, dass uns Entwicklern das oft gar nicht auffällt. Zum Beispiel in der Beitragsübersicht:

Liste der Beiträge in WordPress mit einer Zeitdifferenz in einer von Menschen lesbaren Form.
human_time_diff() in Action!

Beispiel:

Möchte man im Frontend die Zeitdifferenz von der aktuellen bis zu letzten Aktualisierung ausgeben, könnte man wie folgt vorgehen:

<?php
add_filter( 'the_content', function ( $content ) {

	$modified_timestamp = get_the_modified_date( 'U' );

	$content = sprintf(
		           __( 'This content was last modified about %s ago.', 'mm-plugin' ),
		           human_time_diff( $modified_timestamp )
	           ) . $content;

	return $content;
} );

?>