Plugin Directory

Artiss Relative Date

Display a relative date (e.g. "4 days ago")

Relative dates are where, instead of showing the exact date of a post, you can say it was posted "4 days ago." Tomorrow, this message would say "5 days ago."

This plugin, originally named WP Relative Date, has been designed to be called from your theme to display these relative dates as required.

It is based on code from a number of sites (none of which can be proven to be the originator!) but has been improved and converted to work with WordPress.

All relative dates are only shown at 2 depths and are not designed to be 100% accurate (due to rounding), but rather to give the reader an idea as to how old something is.

The dates will be shown in one the following formats, depending on relevance...

  • Years, months
  • Years, weeks
  • Months, weeks
  • Months, days
  • Weeks, days
  • Days, hours
  • Hours, minutes
  • Minutes, seconds
  • Seconds

Some examples...

Something that is 1 years and 2 months and 3 weeks old will be output as "1 years, 2 months". Something that is 1 years and 0 months and 3 weeks old will be output as "1 years, 3 weeks".

To use, you simply call either get_relative_date or relative_date - the first will return the relative date and the second will output it.

No parameters are required and if none are specified then it will simply create a relative date for the current post or page based on how old it is. However, you can specify as the first or second parameter a Unix format date (more on that in a minute). If one is supplied then the difference will be between that and the current date. If a second date is specified then the output will be the difference between the 2 dates.

All dates specified must be in Unix format. In most cases you'll probably use this plugin to display a post time. That is returned by the code get_the_time(). By specifying get_the_time('U') instead, it will return it in Unix format. Don't forget, however, that if you don't specify a date then the post time will be assumed anyway. None-the-less, we'll use this date as an example.

So, to return the relative date instead you'd specify get_relative_date( get_the_time( 'U' ) ). Put that together along with an appropriate script to check that the plugin is active, you might have something like this in your theme...

if ( function_exists( 'get_relative_date' ) ) {
    echo 'Created ' . get_relative_date( get_the_time( 'U' ) ) . ' ago.';
}

If you need to convert other dates/times to Unix format, you may want to look at the PHP commands date and strtotime.

Additionally, there is another parameter that you can use, if you wish to override the default divider (which is a comma). For example...

get_relative_date( get_the_time( 'U' ) )

Might produce a result of 3 days, 4 hours ago. Whereas...

get_relative_date( get_the_time( 'U' ), ' and ' )

Would produce a result of 3 days and 4 hours ago. Note that you need to specify any spaces as well around the divider that you need.

With regard to the sequence of the parameters, it doesn't matter - you can specify the parameters in any order (up to 2 dates and 1 divider).

For help with this plugin, or simply to comment or get in touch, please read the appropriate section in "Other Notes" for details. This plugin, and all support, is supplied for free, but donations are always welcome.

Requires: 2.5 or higher
Compatible up to: 3.3.2
Last Updated: 2012-3-26
Downloads: 907

Average Rating

3 stars
(5 ratings)

Support

Got something to say? Need help?

Compatibility

+
=
Not enough data

0 people say it works.
0 people say it's broken.

100,1,1
100,1,1
0,2,0