2.5.1 - 2024-06-23
- Fix insufficient type detection for FREQ and WKST leading to deprecation warning in tests with PHP 8.3 #149
- Fix failing tests with ICU 72.1 because of NNBSP
- Fix C.UTF8 locale support when intl isn't installed
2.5.0 - 2024-06-08
- Swedish: Corrects the spelling of monday and the grammar of enumeration partials. #134
- Spanish: Improve clarity in daily and weekly recurrence translation #147
- Dutch: weekdays and months are written in lowercase #136
- Better handle TZ with Exchange / M365 generated iCal files #143
2.4.1 - 2023-06-07
- Correctly parse
DateTimeImmutable
#132 - Fix namespace on return type #130
- Humanreadable gets monthly wrong #129
2.4.0 - 2023-01-06
- Exclude files from dist packages #110
- Improve German translation #112
- Daylight Saving Time issue with PHP 8.1 #120
2.3.2 - 2022-05-03
- Fix timezone (and the entire rule) changed to uppercase if rule was created using
createdFromRfcString
#103
2.3.1 - 2022-04-22
- Fix microseconds not always removed from dtstart, causing date comparison issues with specific date input #104
2.3.0 - 2021-10-25
- Added Swedish translation #96
- Added
bin/review_translations.php
as a helper for translators and contributors - Added Hebrew translation #95
- Fix Finnish translation #94
- Update French translation
- Update German translation
- Fix compatibility with PHP 8.1 #100
2.2.2 - 2021-01-09
- Fix
getOccurrencesAfter
returns empty array when$inclusive
isfalse
and$limit
is not set #93
2.2.1 - 2020-12-09
- Fix support for
DateTimeImmutable
#90
2.2.0 - 2019-11-01
- Fix valid rules wrongly detected as not producing results, and cut short after MAX_CYCLES #78
- Fix
RRule::createFromRfcString
not detecting RSet properly if the rule was lowercase - [internal] Replace static variables by array constants (permitted since PHP 5.6). Shouldn't break backward compatibility unless you were doing weird things with this lib in the first place.
2.1.0 - 2019-05-30
- Fix locale format for i18n files without
intl
extension #67
- Added new methods to
RSet
:removeDate
,clearDates
,removeExDate
andclearExDates
#66
2.0.0 - 2019-03-16
- Add support for PHP 7.3
2.0.0-rc1 - 2019-01-13
- Rewrite the core algorithm to use a native PHP generator, drop compatibility with PHP < 5.6 #43
- New option
custom_path
tohumanReadable()
to use custom translation files #56 - New helpers methods #60
getOccurrencesBefore
getOccurrencesAfter
getNthOccurrencesBefore
getNthOccurrencesAfter
getNthOccurrencesFrom
1.6.3 - 2019-01-13
- Fix error when timezone is an offset instead of an olson name. #61
- Fix VALUE is a valid param of EXDATE #62
1.6.2 - 2018-09-18
- Fix typo in NL translation #53
1.6.1 - 2018-04-13
- Null check to prevent 0 (false) values being lost when exporting to RFC string #50
- Fix warning in
humanReadable()
#44 - Fix typo in NL translation #46
1.6.0 - 2017-10-11
- German translation #38
- Add
include_until
option tohumanReadable
to omit the "until" part of the rule #36
1.5.1 - 2017-05-15
- Throw exception when passing a float instead of an int (e.g. INTERVAL=1.5) instead of casting silently
- Variable name typo #34
1.5.0 - 2017-05-07
- Add
explicit_infinite
andinclude_start
options tohumanReadable
to respectivity omit "forever" and the start date from the sentence. - RSet constructor now accepts a string to build a RSET from a RFC string #26
- New factory method
RRule::createFromRfcString()
to build either a RRule or a RSet from a string - Add a
$limit
parameter togetOccurrences()
andgetOccurrencesBetween()
to make working with infinite rule easier - Add a
$dtstart
parameter toRRule
andRSet
constsructor to specify dtstart when working with a RFC string without DTSTART.
- When creating a RRule, the RFC parser will not accept multiple DTSTART or RRULE lines
RRule::parseRfcString
is deprecated. Note: it wasn't part of the documentation in the first place, but just in case someone is using it, it's not removed yet.
1.4.2 - 2017-03-29
humanReadable()
fails if the RRule was created from a RFC string containing the timezone (e.g.DTSTART;TZID=America/New_York:19970901T090000
)
1.4.1 - 2017-02-02
RRule::offsetGet
andRSet::offsetGet
throwInvalidArgumentException
for illegal offset types #22- Update exception message for UNTIL parse error #23
- Fix parser handling of UNTIL when DTSTART is not provided #25
- Accept invalid RFC strings generated by the JS lib but triggers a Notice message #25
- Rework
RRule::i18nLoad()
to accept locales such asen_sg
and useLocale::parseLocale
when possible #24 - Fix
humanReadable
fails withintl
enabled when the timezone is "Z" #24
1.4.0 - 2016-11-11
- Add
RRule::getRule()
method to return original rule array #17 - Add
RSet::getRRules()
,RSet::getExRules()
,RSet::getDates()
andRSet::getExDates()
- Tests for PHP 7.0
- Fix a bug in
rfcString
when using a frequency constant (instead of a string) to create the rule #16 - Fix a undefined index bug in RFC parser
1.3.1 - 2016-08-09
- Italian translation (it) #14
- Fixed a bug when combining values with an integer modifier and regular values in
BYDAY
(example1MO,FR
) - Fixed RRule created with a timestamp start date generates an invalid RFC string #15
1.3.0 - 2016-07-08
- Spanish translation (es) #12
$include_timezone
parameter toRRule::rfcString()
to produce a RFC string without timezone information
RRule::parseRfcString()
is stricter and will not accept invalidDTSTART
andUNTIL
formats (use the array syntax in the constructor withDateTime
objects if you need to create rules with complex combinations of timezones). #13
1.2.0 - 2016-04-09
- Fixed fatal error Locale class not found when intl extension is not loaded #10
1.1.0 - 2016-03-30
- New class
RRule\RSet
(recurrence set) that can combine multiple RRULE, EXRULE, RDATE and EXDATE. #7 - New interface
RRule\RRuleInterface
to unifyRRule
andRSet
- New methods:
isFinite()
,isInfinite()
- Fix bug preventing the iteration of multiple instances of RRule at the same time
- Fix
occursAt
failing when the date passed was a different timezone #8 - Fix bug at WEEKLY frequency with a partially filled cache in some circumstances
- Fix various reference bugs causing corruption of the cache in some circumstances (related to DateTime object being mutable)
- The alias
RRule::occursOn
has been removed (useoccursAt
instead)
1.0.1 - 2016-03-11
- Ensure the results are returned in the same timezone as DTSTART. #6
- LogicException namespacing bug. #3
- First release, everything before that was unversioned (
dev-master
was used).