PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Expression / DateRelativeDeductedSpecification.php
codepress-admin-columns / classes / Expression Last commit date
Exception 2 days ago SpecificationFactory 2 days ago AggregateSpecification.php 2 days ago AndSpecification.php 2 days ago CollectionOperators.php 2 days ago CollectionSpecification.php 2 days ago ComparisonOperators.php 2 days ago ComparisonSpecification.php 2 days ago CompositeSpecification.php 2 days ago ContainsSpecification.php 2 days ago Context.php 2 days ago ContextAwareSpecification.php 2 days ago DateComparisonSpecification.php 2 days ago DateOperators.php 2 days ago DateRangeSpecification.php 2 days ago DateRelativeDaysSpecification.php 2 days ago DateRelativeDeductedSpecification.php 2 days ago DateSpecification.php 2 days ago DateTimeFactory.php 2 days ago DateTrait.php 2 days ago EndsWithSpecification.php 2 days ago FactSpecification.php 2 days ago FactTrait.php 2 days ago FloatComparisonSpecification.php 2 days ago FloatRangeSpecification.php 2 days ago IntegerComparisonSpecification.php 2 days ago IntegerRangeSpecification.php 2 days ago NotSpecification.php 2 days ago NullSpecification.php 2 days ago OperatorExpression.php 2 days ago OrSpecification.php 2 days ago RangeOperators.php 2 days ago RangeSpecification.php 2 days ago Specification.php 2 days ago SpecificationFactory.php 2 days ago StartsWithSpecification.php 2 days ago StringComparisonSpecification.php 2 days ago StringMatchSpecification.php 2 days ago StringOperators.php 2 days ago Type.php 2 days ago TypeSpecification.php 2 days ago TypeTrait.php 2 days ago Types.php 2 days ago
DateRelativeDeductedSpecification.php
47 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Expression;
6
7 use AC\DateFormats;
8 use AC\Expression\Exception\InvalidDateFormatException;
9 use AC\Expression\Exception\OperatorNotFoundException;
10 use DateTimeZone;
11
12 final class DateRelativeDeductedSpecification extends OperatorExpression
13 {
14 use DateTrait;
15
16 public function __construct(string $operator, ?string $format = null, ?DateTimeZone $timezone = null)
17 {
18 parent::__construct($operator);
19
20 $this->format = $format;
21 $this->timezone = $timezone;
22 }
23
24 /**
25 * @throws InvalidDateFormatException
26 */
27 public function is_satisfied_by($value): bool
28 {
29 // Format that discards time
30 $format = DateFormats::DATE_MYSQL;
31 $date = $this->create_date_from_value($value)->format($format);
32 $today = DateTimeFactory::create($this->timezone)->format($format);
33
34 switch ($this->operator) {
35 case DateOperators::TODAY:
36 return $today === $date;
37 case DateOperators::PAST:
38 return $date < $today;
39 case DateOperators::FUTURE:
40 return $date > $today;
41 }
42
43 throw new OperatorNotFoundException($this->operator);
44 }
45
46 }
47