Often you don’t want to query events between two set dates, but dates relative in time. For instance you might want to display upcoming events this month, or events just finished, etc.
Event Organiser allows you to give certain date-related query arguments in ‘relative date format’. For example, ‘tomorrow‘, ‘now‘, ‘+1 week‘, ‘third Thursday of this month‘ etc.
So what’s allowed?
The interpretation of relative strings is done via native php functions, so a full list of available formats can be found here. Please note which relative statements are available to you depends on the php version you are running WordPress on.
Current time:
Monday 11th November 2024, 2:48pm (UTC)
"Monday":
11th November 2024, 12:00am (UTC)
Usage
The relative statements can be used for the appropriate parameters in eo_get_events
(or in general an appropriate, WP_Query
query) or in the event list shortcode.
ondate
event_start_after
event_start_before
event_end_after
event_end_before
For example:
//Events running in the coming week..
<?php $events = eo_get_events(array(
'event_end_after'=>'now',
'event_start_before'=>'+1 week',
)); ?>
PHP Version
Please note that these strings are interpreted using PHP’s datetime object. See allowed statements here. Some PHP versions do not support all the statements.
For example ‘first day of this month‘ is only supported by PHP 5.3+
Examples
Events running from today until two months time
<?php $events = eo_get_events(array(
'event_end_after'=>'now',
'event_start_before'=>'+2 month'
)); ?>
Events running this week (Monday to Sunday)
<?php eo_get_events(array(
'event_end_after'=>'last Monday',
'event_start_before'=>'this Sunday',
'showpastevents'=>1
)); ?>
Using the shortcode to list past events
[eo_events event_end_before="today" showpastevents=true ]
Using the shortcode to list events running this month
[eo_events event_start_before="last day of this month" event_end_after="first day of this month" showpastevents=true]
Using the shortcode to list events starting this month
[eo_events event_start_before="last day of this month" event_start_after="first day of this month" showpastevents=true]