Skip to content
PHP Date Recursion library
PHP
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src PHP 7.x enhancements, ignore "RRULE:" from `rrule` Apr 17, 2019
tests Updates all tests for phpunit 8 Apr 17, 2019
.gitignore Switched to PSR-4 and added phpunit as a require-dev Mar 7, 2015
.travis.yml
LICENSE First commit of develop branch. Feb 9, 2013
README.md PHP 7.x enhancements, ignore "RRULE:" from `rrule` Apr 17, 2019
composer.json Revert to phpunit 7 so we can support php 7.1 Apr 17, 2019
phpunit.xml PHP 7.x enhancements, ignore "RRULE:" from `rrule` Apr 17, 2019

README.md

When

Date/Calendar recursion library for PHP 7.1+

Build Status Total Downloads

Author: Tom Planer

Installation

composer require tplaner/When

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 for the next 5 occurrences, skipping known friday the 13ths
$r = new When();
$r->startDate(new DateTime("19980213T090000"))
  ->freq("monthly")
  ->count(5)
  ->byday("fr")
  ->bymonthday(13)
  ->exclusions('19990813T090000,20001013T090000')
  ->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.

You can’t perform that action at this time.