コード例 #1
0
 /**
  * DateDiffCalculator that calculates diff to the past in one of the units:
  * - seconds
  * - minutes
  * - "yesterday"
  * - hours
  * - days
  * - weeks (up to 14 days)
  * - full date
  *
  * @return DateDiffCalculator
  */
 public static function upTo2Weeks()
 {
     return self::getOrCreate('up-to-2-weeks', function () {
         return new DateDiffCalculator([RangeRule::createForNegativeValues(2 * DateUnits::WEEK, INF, function (DateDiffRequest $request) {
             return DateDiffResult::createFullDate($request);
         }), Rules::weeksAgo(), Rules::yesterday(), Rules::daysAgo(), Rules::hoursAgo(), Rules::minutesAgo(), Rules::secondsAgo()]);
     });
 }
コード例 #2
0
 public function testRangeChecking()
 {
     $condition = new RangeRule(-100, 100, function (DateDiffRequest $request) {
         return DateDiffResult::createFullDate($request);
     });
     $this->assertTrue($condition->isApplicable($this->createRequestForSeconds(5)));
     $this->assertTrue($condition->isApplicable($this->createRequestForSeconds(100)));
     $this->assertTrue($condition->isApplicable($this->createRequestForSeconds(-100)));
     $this->assertFalse($condition->isApplicable($this->createRequestForSeconds(-101)));
     $this->assertFalse($condition->isApplicable($this->createRequestForSeconds(101)));
     $this->assertFalse($condition->isApplicable($this->createRequestForSeconds(1000)));
 }
コード例 #3
0
 protected function createFullDateResult(\DateTimeImmutable $currentDate)
 {
     return DateDiffResult::createFullDate(new DateDiffRequest($currentDate, $currentDate->modify('tomorrow')));
 }