Skip to content

Instantly share code, notes, and snippets.

@benjaminrau
Created January 23, 2013 14:18
Show Gist options
  • Save benjaminrau/4606121 to your computer and use it in GitHub Desktop.
Save benjaminrau/4606121 to your computer and use it in GitHub Desktop.
Compare two DateInterval objects with dynamic operator
/**
* Compare Date Intervals
*
* @param DateInterval $dateInterval1
* @param DateInterval $dateInterval2
* @param string $operator
* @return boolean
*/
private function compareDateIntervals(DateInterval $dateInterval1, DateInterval $dateInterval2, $operator) {
$newDate = new DateTime();
$newDate2 = clone $newDate;
switch ($operator) {
case "==": return $newDate->add($dateInterval1) == $newDate2->add($dateInterval2);
case "!=": return $newDate->add($dateInterval1) != $newDate2->add($dateInterval2);
case ">=": return $newDate->add($dateInterval1) >= $newDate2->add($dateInterval2);
case "<=": return $newDate->add($dateInterval1) <= $newDate2->add($dateInterval2);
case ">": return $newDate->add($dateInterval1) > $newDate2->add($dateInterval2);
case "<": return $newDate->add($dateInterval1) < $newDate2->add($dateInterval2);
default: return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment