Skip to content

hollodotme/crontab-expression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Latest Stable Version Total Downloads Coverage Status

CrontabExpression

Description

Library to validate crontab expressions and check their due date

Requirements

  • PHP >= 7.1

Installation

composer require hollodotme/crontab-expression

Usage

Validate expressions

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.

Check if date satisfies expression (expression is due)

<?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)

Contributing

Contributions are welcome and will be fully credited. Please see the contribution guide for details.

About

Library to validate crontab expressions and check their due date

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages