=== Dynamic Dates === Contributors: jasonhendriks Tags: dynamic, date, dates, time, times, calculator, format, formatter, formatting Requires at least: 2.7 Tested up to: 4.2 Stable tag: 2.0.5 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Calculate dates ('next Sunday') and relative dates ('December 25th two years from now') in your posts and pages. == Description == Calculates dates and relative dates dynamically in your posts and pages. For example: > Our church's next service is on **Mar 21/15** > > `[date format="M d/Y" time="this Sunday"]` Add an always up-to-date copyright notice, or the date of your next monthly poker game. See [examples on my website](http://programmer.jasonhendriks.com/dynamic-dates/dynamic-dates-examples/). See the FAQ for instructions on use. ###* What's New for v2 * * Now supporting the local WordPress timezone, user-specified timezones, and user-specified languages! = Requirements = * PHP 5.2 for user-specified timezones or PHP 5.3 with the International extension for user-specified languages. == Installation == 1. Download Dynamic Dates 1. Unzip and upload the resulting folder to the '/wp-content/plugins/' directory 1. Activate the plugin through the 'Plugins' menu in WordPress 1. Place a Dynamic Date shortcode in your posts and/or pages. A theme template function call is also available. == Frequently Asked Questions == = How does it work? = Dynamic Dates uses PHP's [strtotime()](http://php.net/manual/en/datetime.formats.relative.php) function to parse natural language into relative timestamps. For example, two years from now is "+2 year" and Canadian Thanksgiving is the "second monday of october" . Browse the full [strtotime()](http://php.net/manual/en/datetime.formats.relative.php) reference to find other possibilities. = How can I display a simple date? = Use one of the built-in shortcodes: > `[now]`, `[yesterday]`, `[today]`, `[tomorrow]`, `[last-month]`, `[this-month]`, `[next-month]`, `[last-year]`, `[this-year]`, `[next-year]` See [live examples](http://programmer.jasonhendriks.com/dynamic-dates/dynamic-dates-examples/) at my website. = How can I display a customized date? = This is a very powerful feature. Use any shortcode, or the generic `[date]` shortcode, and extend it with the following attributes, each of which is optional: * format - a pattern to format the date or time. Browse the different formatting codes for [English mode](http://php.net/manual/en/function.date.php) and [International mode](http://userguide.icu-project.org/formatparse/datetime). * time - the date or time [specified with natural language](http://php.net/manual/en/datetime.formats.relative.php) * relative_to - a date or time that the first time is "relative to", also specified with natural language * timezone - a [timezone](http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html) to display (the default is set in the WordPress settings (requires PHP 5.2 or higher) * language - a language to use (requires PHP 5.3 or higher) 'English Mode' advanced examples: > It's **Sunday 15:58:47** in Paris, France > > [date format="l H:i:s" timezone="Europe/Paris"] > > Canadian Thanksgiving is **October 12th** this year and **October 10th** next year > > [date format="F jS" time="second monday of october"] > [date format="F jS" time="second monday of october" relative_to="next year"] 'International Mode' advanced examples: > Voy a la fiesta **el viernes 22 de marzo** > > `[date format="d de MMMM" "time="friday" language="es_CL"]` See [live examples](http://programmer.jasonhendriks.com/dynamic-dates/dynamic-dates-examples/) at my website. == Changelog == = 2.0.5 - 2015-05-08 = * [[Ticket](https://wordpress.org/support/topic/after-update-unknown-or-bad-timezone?replies=7)] Dates tags resulted in an error if the WordPress timezone was a GMT offset. Fixed. = 2.0.3 - 2015-03-20 = * Fixed: The method used to calculate the current timezone was faulty for some environments (produced '-4' for Toronto instead of '-5' during DST) * Fixed: The method used to apply timezones was incorrectly applying it to calculated dates without times (eg. 'next sunday') * Added an option to set the Log Level (defaulted to Error) instead of just blindly writing debug lines into debug.log/error.log * Fixed: Systems with no ability to format international dates were incorrectly allowed to enable international formatting = 2.0.2 - 2015-01-28 = * Fixed: In some PHP environments, the WordPress timezone setting can not be interpreted - the error is DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone = 2.0.1 - 2015-01-27 = * Gave the settings group name a more unique name to avoid collisions with other plugins = 2.0 - 2015-01-25 = * Added timezone support, the most requested feature. The default timezone is set in the WordPress configuration. Requires PHP 5.2. Use the timezone shortcode attribute. * Added international language support, the second most requested feature. The default language is set in the WordPress configuration. Requires PHP 5.3 with the International extension. Use the language shortcode attribute. = 1.0.1 - 2015-01-23 = * A biennial update to re-list Dynamic Dates in the WordPress plugin directory = 1.0.0 - 2011-05-03 = * First release * Tested with PHP v5.3.4 == Upgrade Notice == = 2.0.3 = Stop clogging outfile with debug statements. Bug fixes. = 2.0.2 = Fixed the error that presents in some environment "Unknown or bad timezone" = 2.0.1 = Fix name collision issues with other plugins. = 2.0 = The first major update in nearly four years! Now with timezone and language support. = 1.0.1 = A superficial update to re-list Dynamic Dates in the WordPress plugin directory = 1.0.0 = The first version. Yay! == Screenshots == 1. Dynamic Dates running at [jasonhendriks.com](http://www.jasonhendriks.com/programmer/dynamic-dates/dynamic-dates-examples/)