Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tag: 1.0.2
Fetching contributors…

Cannot retrieve contributors at this time

47 lines (34 sloc) 1.551 kB

Heartsentwined\CronExprParser

Build Status

Parse cron expressions and match them against time.

Installation

Composer:

{
    "require": {
        "heartsentwined/cron-expr-parser": "1.*"
    }
}

Usage

Parse a Cron expression and a time, and determine if the given time falls within the given cron expression.

use Heartsentwined\CronExprParser\Parser;
$match      = Parse::matchTime('next Thursday', '* * * * 4');
$notMatch   = Parse::matchTime('next Friday', '* * * * 4');

Function signature:

public static function matchTime($time, $expr)

$time is either a timestamp, or a strtotime-compatible string.

$expr is any valid cron expression, in addition supporting:

  • range: 0-5
  • range + interval: 10-59/5
  • comma-separated combinations of these: 1,4,7,10-20
  • English months: january
  • English months (abbreviated to three letters): jan
  • English weekdays: monday
  • English weekdays (abbreviated to three letters): mon
  • These text counterparts can be used in all places where their numerical counterparts are allowed, e.g. jan-jun/2
  • A full example: 0-5,10-59/5 * 2-10,15-25 january-june/2 mon-fri (every minute between minute 0-5 + every 5th minute between 10-59; every hour; every day between day 2-10 and day 15-25; every 2nd month between January-June; Monday-Friday)
Jump to Line
Something went wrong with that request. Please try again.