function human_time_diff( $from, $to = '' ) { $chunks = array( array( 60 * 60 * 24 * 365 , '%s year', '%s years' ), array( 60 * 60 * 24 * 30 , '%s month', '%s months' ), array( 60 * 60 * 24 * 7, '%s week', '%s weeks' ), array( 60 * 60 * 24 , '%s day', '%s days' ), array( 60 * 60 , '%s hour', '%s hours' ), array( 60 , '%s minute', '%s minutes' ), array( 1 , '%s second', '%s seconds' ), ); if ( empty( $to ) ) $to = time(); $diff = (int) abs( $to - $from ); for ( $i = 0, $j = count( $chunks ); $i < $j; $i++) { $seconds = $chunks[$i][0]; $name1 = $chunks[$i][1]; $name2 = $chunks[$i][2]; if ( ( $count = floor( $diff / $seconds ) ) != 0) break; } $since = sprintf( _n( $name1, $name2, $count ), $count ); $i++; if ( $i < $j ) { $seconds_p2 = $chunks[$i][0]; $name1 = $chunks[$i][1]; $name2 = $chunks[$i][2]; if ( ( $count = floor( ( $diff - ( $seconds * $count ) ) / $seconds_p2 ) ) != 0 ) { if( is_rtl() ) $since = sprintf( _n( $name1, $name2, $count ), $count ) ." ". $since; else $since = $since. " " . sprintf( _n( $name1, $name2, $count ), $count ); } } return $since; }