Tribe__Date_Utils::range_coincides( integer $range_1_start, integer $range_1_end, integer $range_2_start, integer $range_2_end )
Given 2 datetime ranges, return whether the 2nd one occurs during the 1st one Note: all params should be unix timestamps
Contents
Parameters
- $range_1_start
-
(integer) (Required) timestamp for start of the first range
- $range_1_end
-
(integer) (Required) timestamp for end of the first range
- $range_2_start
-
(integer) (Required) timestamp for start of the second range
- $range_2_end
-
(integer) (Required) timestamp for end of the second range
Return
(bool)
Source
File: src/Tribe/Date_Utils.php
public static function range_coincides( $range_1_start, $range_1_end, $range_2_start, $range_2_end ) {
// Initialize the return value
$range_coincides = false;
/**
* conditions:
* range 2 starts during range 1 (range 2 start time is between start and end of range 1 )
* range 2 ends during range 1 (range 2 end time is between start and end of range 1 )
* range 2 encloses range 1 (range 2 starts before range 1 and ends after range 1)
*/
$range_2_starts_during_range_1 = $range_2_start >= $range_1_start && $range_2_start < $range_1_end;
$range_2_ends_during_range_1 = $range_2_end > $range_1_start && $range_2_end <= $range_1_end;
$range_2_encloses_range_1 = $range_2_start < $range_1_start && $range_2_end > $range_1_end;
if ( $range_2_starts_during_range_1 || $range_2_ends_during_range_1 || $range_2_encloses_range_1 ) {
$range_coincides = true;
}
return $range_coincides;
}