Library to validate crontab expressions and check their due date
- PHP >= 7.1
composer require hollodotme/crontab-expression
Expressions are validated on construction of CrontabExpression
.
If you provide an invalid expression a hollodotme\CrontabValidator\Exceptions\InvalidExpressionException
will be thrown.
If you need boolean validation of crontab expressions, please use hollodotme/crontab-validator.
The hollodotme/crontab-validator
package is a dependency for this package (hollodotme/crontab-expression), so you can also use the validator separately:
<?php declare(strict_types=1);
namespace YourVendor\YourProject;
use hollodotme\CrontabValidator\CrontabValidator;
$validator = new CrontabValidator();
if ($validator->isExpressionValid('*/10 6-21 * * 1-5'))
{
echo 'Expression is valid.';
}
else
{
echo 'Expression is invalid.';
}
Prints:
Expression is valid.
<?php declare(strict_types=1);
namespace YourVendor\YourProject;
use hollodotme\CrontabExpression\CrontabExpression;
$expression = new CrontabExpression('*/10 6-21 * * 1-5');
echo $expression->isDue(new \DateTimeImmutable('2017-12-13 16:30:00')) ? 'Is due.' : 'Is not due.';
echo $expression->isDue(new \DateTimeImmutable('2017-12-10 16:30:00')) ? 'Is due.' : 'Is not due.';
# If you omit the $dateTime parameter, new \DateTimeImmutable() - current date - will be used.
echo $expression->isDue() ? 'Depends on your current date & time. (DUE)' : 'Depends on your current date & time. (NOT DUE)';
Prints:
Is due.
Is not due.
Depends on your current date & time. (DUE|NOT DUE)
Contributions are welcome and will be fully credited. Please see the contribution guide for details.