New possibilities for date range triggers #3403

This commit is contained in:
James Cole
2020-06-12 07:49:39 +02:00
parent 48b5f749a1
commit b1732d0de8
4 changed files with 422 additions and 7 deletions

View File

@@ -82,7 +82,8 @@ final class DateAfter extends AbstractTrigger implements TriggerInterface
return false;
}
if ($date->isAfter($ruleDate)) {
$isDateRange = $dateParser->isDateRange($this->triggerValue);
if (false === $isDateRange && $date->isAfter($ruleDate)) {
Log::debug(
sprintf(
'%s is after %s, so return true.',
@@ -93,6 +94,32 @@ final class DateAfter extends AbstractTrigger implements TriggerInterface
return true;
}
// could be a date range.
if ($isDateRange) {
Log::debug(sprintf('Date value is "%s", representing a range.', $this->triggerValue));
$range = $dateParser->parseRange($this->triggerValue, $date);
if ($date->isAfter($range['end'])) {
Log::debug(
sprintf(
'%s is after [%s/%s], so return true.',
$date->format('Y-m-d H:i:s'),
$range['start']->format('Y-m-d H:i:s'),
$range['end']->format('Y-m-d H:i:s'),
)
);
return true;
}
Log::debug(
sprintf(
'%s is NOT after [%s/%s], so return false.',
$date->format('Y-m-d H:i:s'),
$range['start']->format('Y-m-d H:i:s'),
$range['end']->format('Y-m-d H:i:s'),
)
);
return false;
}
Log::debug(
sprintf(