PHP Date Recursion library
PHP
Clone or download
Latest commit 9164347 Jun 2, 2017
Permalink
Failed to load latest commit information.
src Fixed rangeLimit failure, and stopped altering $this Jul 6, 2016
tests Fixed rangeLimit failure, and stopped altering $this Jul 6, 2016
.gitignore
.travis.yml
LICENSE First commit of develop branch. Feb 9, 2013
README.md Format README Jun 1, 2017
composer.json Switched to PSR-4 and added phpunit as a require-dev Mar 7, 2015
phpunit.xml First commit of develop branch. Feb 9, 2013

README.md

When

Date/Calendar recursion library for PHP 5.3+

Build Status

Author: Tom Planer

Installation

$ composer require tplaner/when
{
    "require": {
        "tplaner/when": "2.*"
    }
}

Current Features

Currently this version does everything version 1 was capable of, it also supports byhour, byminute, and bysecond. Please check the unit tests for information about how to use it.

Here are some basic examples.

// friday the 13th for the next 5 occurrences
$r = new When();
$r->startDate(new DateTime("19980213T090000"))
  ->freq("monthly")
  ->count(5)
  ->byday("fr")
  ->bymonthday(13)
  ->generateOccurrences();

print_r($r->occurrences);
// friday the 13th for the next 5 occurrences rrule
$r = new When();
$r->startDate(new DateTime("19980213T090000"))
  ->rrule("FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13")
  ->generateOccurrences();

print_r($r->occurrences);
// friday the 13th forever; see which ones occur in 2018
$r = new When();
$r->startDate(new DateTime("19980213T090000"))
  ->rrule("FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13");


$occurrences = $r->getOccurrencesBetween(new DateTime('2018-01-01 09:00:00'),
                                         new DateTime('2019-01-01 09:00:00'));
print_r($occurrences);

License

When is licensed under the MIT License, see LICENSE for specific details.