Exemple #1
0
 public function testCrons()
 {
     CronParser::nextRun('0 0 ' . date('j') . ' * *');
     $this->assertTrue(CronParser::isDue('* * * * *'));
     $testTime = new DateTime('2014-01-01 00:00');
     $this->assertTrue(CronParser::isDue('0 * * * *', $testTime));
     $this->assertTrue(CronParser::isDue('0 0 * * *', $testTime));
     // zero day is not valid
     $this->assertFalse(CronParser::isDue('0 0 0 * *', $testTime));
     // tuesday
     $nextTuesday = CronParser::nextRun('0 0 * * 2', $testTime);
     $this->assertEquals(2, $nextTuesday->format('N'));
     // next year
     $farFuture = CronParser::nextRun('* * * * * 2099', $testTime);
     $this->assertEquals(2099, $farFuture->format('Y'));
     // next tuesday 15th
     $tuesdayFifteenth = CronParser::nextRun('* * 15 * 2', $testTime);
     $this->assertEquals(2099, $tuesdayFifteenth->format('Y'));
 }
Exemple #2
0
 public function nextRun($time = null)
 {
     if (!$this->sendAt) {
         return null;
     }
     if (!CronParser::isValid($this->sendAt)) {
         return DateTimeHelper::dateTimeFromAnything($this->sendAt);
     }
     if (is_int($time)) {
         $time = (new \DateTime())->setTimestamp($time);
     }
     $nr = CronParser::nextRun($this->sendAt, $time, true);
     return $nr ?: null;
 }