Tribe__Events__Repositories__Event::filter_by_starts_and_ends_between( string|DateTime|int $start_datetime, string|DateTime|int $end_datetime, string|DateTimeZone $timezone = null )

Filters events whose start and end dates occur between a set of dates.

Fetch is inclusive.


Parameters

$start_datetime

(string|DateTime|int) (Required) A strtotime parse-able string, a DateTime object or a timestamp.

$end_datetime

(string|DateTime|int) (Required) A strtotime parse-able string, a DateTime object or a timestamp.

$timezone

(string|DateTimeZone) (Optional) A timezone string, UTC offset or DateTimeZone object; defaults to the site timezone; this parameter is ignored if the $datetime parameter is a DatTime object.

Default value: null


Top ↑

Return

(array) An array of arguments that should be added to the WP_Query object.


Top ↑

Source

File: src/Tribe/Repositories/Event.php

	public function filter_by_starts_and_ends_between( $start_datetime, $end_datetime, $timezone = null ) {
		$start_date = Tribe__Date_Utils::build_date_object( $start_datetime, $timezone )
		                               ->setTimezone( $this->normal_timezone )
		                               ->format( Tribe__Date_Utils::DBDATETIMEFORMAT );
		$end_date   = Tribe__Date_Utils::build_date_object( $end_datetime, $timezone )
		                               ->setTimezone( $this->normal_timezone )
		                               ->format( Tribe__Date_Utils::DBDATETIMEFORMAT );

		$interval = array( $start_date, $end_date );

		return array(
			'meta_query' => array(
				'starts-ends-between' => array(
					'starts-between' => array(
						'key'     => $this->start_meta_key,
						'value'   => $interval,
						'compare' => 'BETWEEN',
						'type'    => 'DATETIME',
					),
					'relation'       => 'AND',
					'ends-between'   => array(
						'key'     => $this->end_meta_key,
						'value'   => $interval,
						'compare' => 'BETWEEN',
						'type'    => 'DATETIME',
					),
				),
			),
		);
	}

Top ↑

Changelog

Changelog
Version Description
4.9 Introduced.