2016-03-23 11:04:41 +01:00
# Changelog
2016-03-11 10:20:11 +01:00
2022-04-22 10:16:25 +02:00
## [Unreleased]
2024-06-23 09:45:45 +02:00
## [2.5.1] - 2024-06-23
### Fixed
- Fix insufficient type detection for FREQ and WKST leading to deprecation warning in tests with PHP 8.3 [#149 ](https://github.com/rlanvin/php-rrule/pull/149 )
- Fix failing tests with ICU 72.1 because of NNBSP
- Fix C.UTF8 locale support when intl isn't installed
2024-06-08 08:10:35 +02:00
## [2.5.0] - 2024-06-08
2024-06-08 07:39:51 +02:00
### Fixed
- Swedish: Corrects the spelling of monday and the grammar of enumeration partials. [#134 ](https://github.com/rlanvin/php-rrule/pull/134 )
- Spanish: Improve clarity in daily and weekly recurrence translation [#147 ](https://github.com/rlanvin/php-rrule/pull/147 )
- Dutch: weekdays and months are written in lowercase [#136 ](https://github.com/rlanvin/php-rrule/pull/136 )
- Better handle TZ with Exchange / M365 generated iCal files [#143 ](https://github.com/rlanvin/php-rrule/pull/143 )
### Added
- Human readable time of day option [#124 ](https://github.com/rlanvin/php-rrule/pull/124 )
- Japanese translation [#139 ](https://github.com/rlanvin/php-rrule/pull/139 )
- Czech translation [#137 ](https://github.com/rlanvin/php-rrule/pull/137 )
2023-06-07 15:15:59 +02:00
## [2.4.1] - 2023-06-07
### Fixed
- Correctly parse `DateTimeImmutable` [#132 ](https://github.com/rlanvin/php-rrule/pull/132 )
- Fix namespace on return type [#130 ](https://github.com/rlanvin/php-rrule/pull/130 )
- Humanreadable gets monthly wrong [#129 ](https://github.com/rlanvin/php-rrule/pull/129 )
2023-01-06 11:17:33 +01:00
## [2.4.0] - 2023-01-06
2022-08-21 11:08:21 +02:00
### Fixed
- Exclude files from dist packages [#110 ](https://github.com/rlanvin/php-rrule/pull/110 )
2023-01-06 11:17:33 +01:00
- Improve German translation [#112 ](https://github.com/rlanvin/php-rrule/issues/112 )
- Daylight Saving Time issue with PHP 8.1 [#120 ](https://github.com/rlanvin/php-rrule/issues/120 )
2022-08-21 11:08:21 +02:00
### Added
2024-06-23 15:40:15 +02:00
- Added Portuguese translation [#108 ](https://github.com/rlanvin/php-rrule/pull/108 )
2022-08-21 11:08:21 +02:00
- Added Polish translation [#106 ](https://github.com/rlanvin/php-rrule/pull/106 )
2022-05-03 15:11:22 +02:00
## [2.3.2] - 2022-05-03
### Fixed
- Fix timezone (and the entire rule) changed to uppercase if rule was created using `createdFromRfcString` [#103 ](https://github.com/rlanvin/php-rrule/issues/103 )
2022-04-22 10:16:25 +02:00
## [2.3.1] - 2022-04-22
### Fixed
- Fix microseconds not always removed from dtstart, causing date comparison issues with specific date input [#104 ](https://github.com/rlanvin/php-rrule/issues/104 )
2021-10-25 16:31:52 +02:00
## [2.3.0] - 2021-10-25
2016-03-11 10:20:11 +01:00
2021-07-04 12:45:11 +02:00
### Added
- Added Swedish translation [#96 ](https://github.com/rlanvin/php-rrule/pull/96/ )
- Added `bin/review_translations.php` as a helper for translators and contributors
2021-07-04 16:21:53 +02:00
- Added Hebrew translation [#95 ](https://github.com/rlanvin/php-rrule/pull/95 )
2021-07-04 12:45:11 +02:00
2021-07-04 12:34:33 +02:00
### Fixed
2021-07-04 12:32:28 +02:00
- Fix Finnish translation [#94 ](https://github.com/rlanvin/php-rrule/issues/94 )
2021-07-04 16:21:53 +02:00
- Update French translation
2021-07-04 12:34:33 +02:00
- Update German translation
2021-10-25 16:31:52 +02:00
- Fix compatibility with PHP 8.1 [#100 ](https://github.com/rlanvin/php-rrule/pull/100 )
2021-07-04 12:32:28 +02:00
2021-01-09 14:18:28 +01:00
## [2.2.2] - 2021-01-09
### Fixed
- Fix `getOccurrencesAfter` returns empty array when `$inclusive` is `false` and `$limit` is not set [#93 ](https://github.com/rlanvin/php-rrule/pull/93 )
2020-12-09 08:51:26 +01:00
## [2.2.1] - 2020-12-09
### Fixed
- Fix support for `DateTimeImmutable` [#90 ](https://github.com/rlanvin/php-rrule/issues/90 )
2019-11-01 12:51:17 +01:00
## [2.2.0] - 2019-11-01
2019-09-01 14:08:55 +02:00
### Added
- Persian (Farsi) translation [#72 ](https://github.com/rlanvin/php-rrule/pull/72 )
- Support for Windows timezone [#69 ](https://github.com/rlanvin/php-rrule/issues/69 )
2019-09-01 20:50:21 +02:00
### Fixed
2019-11-01 12:48:41 +01:00
- Fix valid rules wrongly detected as not producing results, and cut short after MAX_CYCLES [#78 ](https://github.com/rlanvin/php-rrule/issues/78 )
2019-09-01 20:54:12 +02:00
- 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.
2019-09-01 20:50:21 +02:00
2019-01-15 06:30:23 +01:00
## [2.1.0] - 2019-05-30
### Fixed
- Fix locale format for i18n files without `intl` extension [#67 ](https://github.com/rlanvin/php-rrule/issues/67 )
2019-01-14 14:09:04 +01:00
### Added
- Added new methods to `RSet` : `removeDate` , `clearDates` , `removeExDate` and `clearExDates` [#66 ](https://github.com/rlanvin/php-rrule/pull/66 )
2019-01-14 03:04:42 +01:00
## [2.0.0] - 2019-03-16
- Add support for PHP 7.3
2019-01-13 17:48:29 +01:00
## [2.0.0-rc1] - 2019-01-13
2024-06-23 15:40:15 +02:00
- Rewrite the core algorithm to use a native PHP generator, drop compatibility with PHP < 5.6 [#43 ](https://github.com/rlanvin/php-rrule/issues/43 )
2018-06-29 11:45:10 +02:00
2019-01-13 11:47:43 +01:00
### Added
- New option `custom_path` to `humanReadable()` to use custom translation files [#56 ](https://github.com/rlanvin/php-rrule/issues/56 )
2019-01-13 14:40:21 +01:00
- New helpers methods [#60 ](https://github.com/rlanvin/php-rrule/issues/60 )
- `getOccurrencesBefore`
- `getOccurrencesAfter`
- `getNthOccurrencesBefore`
- `getNthOccurrencesAfter`
- `getNthOccurrencesFrom`
2019-01-13 11:47:43 +01:00
2019-01-13 10:49:03 +01:00
## [1.6.3] - 2019-01-13
### Fixed
- Fix error when timezone is an offset instead of an olson name. [#61 ](https://github.com/rlanvin/php-rrule/issues/61 )
- Fix VALUE is a valid param of EXDATE [#62 ](https://github.com/rlanvin/php-rrule/issues/62 )
2018-06-29 11:45:10 +02:00
## [1.6.2] - 2018-09-18
### Fixed
- Fix typo in NL translation [#53 ](https://github.com/rlanvin/php-rrule/issues/53 )
2018-04-13 11:24:21 +02:00
## [1.6.1] - 2018-04-13
### Fixed
- Null check to prevent 0 (false) values being lost when exporting to RFC string [#50 ](https://github.com/rlanvin/php-rrule/pull/50 )
- Fix warning in `humanReadable()` [#44 ](https://github.com/rlanvin/php-rrule/pull/44 )
- Fix typo in NL translation [#46 ](https://github.com/rlanvin/php-rrule/pull/46 )
2017-10-11 14:23:40 +02:00
## [1.6.0] - 2017-10-11
### Added
2017-10-11 12:06:43 +02:00
- German translation [#38 ](https://github.com/rlanvin/php-rrule/pull/38 )
2017-10-11 14:23:40 +02:00
- Add `include_until` option to `humanReadable` to omit the "until" part of the rule [#36 ](https://github.com/rlanvin/php-rrule/pull/36 )
2017-05-15 11:14:37 +02:00
2017-10-11 12:06:43 +02:00
## [1.5.1] - 2017-05-15
2017-05-09 18:01:08 +02:00
### Fixed
- Throw exception when passing a float instead of an int (e.g. INTERVAL=1.5) instead of casting silently
2017-05-15 11:14:37 +02:00
- Variable name typo [#34 ](https://github.com/rlanvin/php-rrule/issues/34 )
2017-05-09 18:01:08 +02:00
2017-05-07 21:33:11 +02:00
## [1.5.0] - 2017-05-07
2017-04-11 17:44:50 +02:00
### Added
2017-04-11 17:49:46 +02:00
- Add `explicit_infinite` and `include_start` options to `humanReadable` to respectivity omit "forever" and the start date from the sentence.
2017-04-11 17:44:50 +02:00
- RSet constructor now accepts a string to build a RSET from a RFC string [#26 ](https://github.com/rlanvin/php-rrule/issues/26 )
- New factory method `RRule::createFromRfcString()` to build either a RRule or a RSet from a string
2017-05-06 13:58:42 +02:00
- Add a `$limit` parameter to `getOccurrences()` and `getOccurrencesBetween()` to make working with infinite rule easier
2017-05-06 14:35:15 +02:00
- Add a `$dtstart` parameter to `RRule` and `RSet` constsructor to specify dtstart when working with a RFC string without DTSTART.
2017-04-11 17:44:50 +02:00
### Fixed
- When creating a RRule, the RFC parser will not accept multiple DTSTART or RRULE lines
2017-04-11 12:20:20 +02:00
2017-05-06 14:35:15 +02:00
### Deprecated
- `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.
2017-03-29 15:20:00 +02:00
## [1.4.2] - 2017-03-29
### Fixed
- `humanReadable()` fails if the RRule was created from a RFC string containing the timezone (e.g. `DTSTART;TZID=America/New_York:19970901T090000` )
2017-02-02 23:43:28 +01:00
## [1.4.1] - 2017-02-02
2017-01-06 15:16:44 +01:00
### Fixed
- `RRule::offsetGet` and `RSet::offsetGet` throw `InvalidArgumentException` for illegal offset types [#22 ](https://github.com/rlanvin/php-rrule/issues/22 )
2017-01-22 21:25:38 +01:00
- Update exception message for UNTIL parse error [#23 ](https://github.com/rlanvin/php-rrule/pull/23 )
2017-02-02 18:30:10 +01:00
- Fix parser handling of UNTIL when DTSTART is not provided [#25 ](https://github.com/rlanvin/php-rrule/issues/25 )
- Accept invalid RFC strings generated by the JS lib but triggers a Notice message [#25 ](https://github.com/rlanvin/php-rrule/issues/25 )
2017-02-02 23:35:09 +01:00
- Rework `RRule::i18nLoad()` to accept locales such as `en_sg` and use `Locale::parseLocale` when possible [#24 ](https://github.com/rlanvin/php-rrule/issues/24 )
2017-03-29 15:27:26 +02:00
- Fix `humanReadable` fails with `intl` enabled when the timezone is "Z" [#24 ](https://github.com/rlanvin/php-rrule/issues/24 )
2017-01-06 15:16:44 +01:00
2016-11-11 19:44:31 +01:00
## [1.4.0] - 2016-11-11
2016-11-11 19:38:59 +01:00
2016-08-31 14:35:15 +02:00
### Added
2016-08-31 14:56:39 +02:00
- Add `RRule::getRule()` method to return original rule array [#17 ](https://github.com/rlanvin/php-rrule/pull/17 )
- Add `RSet::getRRules()` , `RSet::getExRules()` , `RSet::getDates()` and `RSet::getExDates()`
2016-11-11 19:38:59 +01:00
- Tests for PHP 7.0
2016-08-31 14:35:15 +02:00
### Fixed
- Fix a bug in `rfcString` when using a frequency constant (instead of a string) to create the rule [#16 ](https://github.com/rlanvin/php-rrule/pull/16 )
2016-11-11 19:38:59 +01:00
- Fix a undefined index bug in RFC parser
2016-08-31 14:35:15 +02:00
2016-08-09 14:13:42 +02:00
## [1.3.1] - 2016-08-09
2016-07-13 10:08:46 +02:00
### Added
- Italian translation (it) [#14 ](https://github.com/rlanvin/php-rrule/pull/14 )
### Fixed
- Fixed a bug when combining values with an integer modifier and regular values in `BYDAY` (example `1MO,FR` )
2016-08-09 14:13:42 +02:00
- Fixed RRule created with a timestamp start date generates an invalid RFC string [#15 ](https://github.com/rlanvin/php-rrule/issues/15 )
2016-07-08 11:04:09 +02:00
## [1.3.0] - 2016-07-08
2016-06-30 16:01:32 +02:00
### Added
- Spanish translation (es) [#12 ](https://github.com/rlanvin/php-rrule/pull/12 )
- `$include_timezone` parameter to `RRule::rfcString()` to produce a RFC string without timezone information
### Fixed
2024-06-23 15:40:15 +02:00
- `RRule::parseRfcString()` is stricter and will not accept invalid `DTSTART` and `UNTIL` formats (use the array syntax in the constructor with `DateTime` objects if you need to create rules with complex combinations of timezones). [#13 ](https://github.com/rlanvin/php-rrule/issues/13 )
2016-06-30 16:01:32 +02:00
2016-04-09 17:37:43 +02:00
## [1.2.0] - 2016-04-09
2016-03-31 14:42:10 +02:00
### Added
2016-04-03 15:41:30 +02:00
- Support for fallback locale when using `RRule::humanReadable()` [#11 ](https://github.com/rlanvin/php-rrule/pull/11 )
2016-06-30 16:01:32 +02:00
- Dutch translation (nl) [#9 ](https://github.com/rlanvin/php-rrule/pull/9 )
2016-03-31 14:42:10 +02:00
2016-04-03 15:41:30 +02:00
### Fixed
2016-04-09 17:37:43 +02:00
- Fixed fatal error Locale class not found when intl extension is not loaded [#10 ](https://github.com/rlanvin/php-rrule/issues/10 )
2016-04-03 15:41:30 +02:00
2016-03-30 11:19:05 +02:00
## [1.1.0] - 2016-03-30
2016-03-23 11:07:50 +01:00
### Added
- New class `RRule\RSet` (recurrence set) that can combine multiple RRULE, EXRULE, RDATE and EXDATE. [#7 ](https://github.com/rlanvin/php-rrule/issues/7 )
- New interface `RRule\RRuleInterface` to unify `RRule` and `RSet`
- New methods: `isFinite()` , `isInfinite()`
### Fixed
2016-03-21 20:55:40 +01:00
- Fix bug preventing the iteration of multiple instances of RRule at the same time
2017-01-06 15:42:00 +01:00
- Fix `occursAt` failing when the date passed was a different timezone [#8 ](https://github.com/rlanvin/php-rrule/pull/8 )
2016-03-24 08:22:32 +01:00
- 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)
2016-03-21 20:55:40 +01:00
2016-03-23 16:23:09 +01:00
### Removed
- The alias `RRule::occursOn` has been removed (use `occursAt` instead)
2016-03-11 10:20:11 +01:00
## [1.0.1] - 2016-03-11
### Fixed
2016-03-11 10:57:57 +01:00
- Ensure the results are returned in the same timezone as DTSTART. [#6 ](https://github.com/rlanvin/php-rrule/issues/6 )
- LogicException namespacing bug. [#3 ](https://github.com/rlanvin/php-rrule/issues/3 )
2016-03-11 10:20:11 +01:00
## 1.0.0 - 2016-03-02
### Added
- First release, everything before that was unversioned (`dev-master` was used).
2024-06-23 09:45:45 +02:00
[Unreleased]: https://github.com/rlanvin/php-rrule/compare/v2.5.1...HEAD
[2.5.1]: https://github.com/rlanvin/php-rrule/compare/v2.5.0...v2.5.1
2024-06-08 08:10:35 +02:00
[2.5.0]: https://github.com/rlanvin/php-rrule/compare/v2.4.1...v2.5.0
2023-06-07 15:15:59 +02:00
[2.4.1]: https://github.com/rlanvin/php-rrule/compare/v2.4.0...v2.4.1
2023-01-06 11:17:33 +01:00
[2.4.0]: https://github.com/rlanvin/php-rrule/compare/v2.3.2...v2.4.0
2022-05-03 15:11:22 +02:00
[2.3.2]: https://github.com/rlanvin/php-rrule/compare/v2.3.1...v2.3.2
2022-04-22 10:16:25 +02:00
[2.3.1]: https://github.com/rlanvin/php-rrule/compare/v2.3.0...v2.3.1
[2.3.0]: https://github.com/rlanvin/php-rrule/compare/v2.2.2...v2.3.0
2021-01-09 14:18:28 +01:00
[2.2.2]: https://github.com/rlanvin/php-rrule/compare/v2.2.1...v2.2.2
2020-12-09 08:51:26 +01:00
[2.2.1]: https://github.com/rlanvin/php-rrule/compare/v2.2.0...v2.2.1
2019-11-01 12:51:17 +01:00
[2.2.0]: https://github.com/rlanvin/php-rrule/compare/v2.1.0...v2.2.0
2019-01-15 06:30:23 +01:00
[2.1.0]: https://github.com/rlanvin/php-rrule/compare/v2.0.0...v2.1.0
2019-01-14 03:04:42 +01:00
[2.0.0]: https://github.com/rlanvin/php-rrule/compare/v2.0.0-rc1...v2.0.0
[2.0.0-rc1]: https://github.com/rlanvin/php-rrule/compare/v1.6.3...v2.0.0-rc1
2019-01-13 10:49:03 +01:00
[1.6.3]: https://github.com/rlanvin/php-rrule/compare/v1.6.2...v1.6.3
2018-06-29 11:45:10 +02:00
[1.6.2]: https://github.com/rlanvin/php-rrule/compare/v1.6.1...v1.6.2
2018-04-13 11:24:21 +02:00
[1.6.1]: https://github.com/rlanvin/php-rrule/compare/v1.6.0...v1.6.1
2017-10-11 14:23:40 +02:00
[1.6.0]: https://github.com/rlanvin/php-rrule/compare/v1.5.1...v1.6.0
2017-05-15 11:14:37 +02:00
[1.5.1]: https://github.com/rlanvin/php-rrule/compare/v1.5.0...v1.5.1
2017-05-07 21:33:11 +02:00
[1.5.0]: https://github.com/rlanvin/php-rrule/compare/v1.4.2...v1.5.0
2017-03-29 15:27:26 +02:00
[1.4.2]: https://github.com/rlanvin/php-rrule/compare/v1.4.1...v1.4.2
2017-02-02 23:43:28 +01:00
[1.4.1]: https://github.com/rlanvin/php-rrule/compare/v1.4.0...v1.4.1
2016-11-11 19:43:55 +01:00
[1.4.0]: https://github.com/rlanvin/php-rrule/compare/v1.3.1...v1.4.0
2016-08-09 14:13:42 +02:00
[1.3.1]: https://github.com/rlanvin/php-rrule/compare/v1.3.0...v1.3.1
2016-07-08 11:04:09 +02:00
[1.3.0]: https://github.com/rlanvin/php-rrule/compare/v1.2.0...v1.3.0
2016-04-09 17:37:43 +02:00
[1.2.0]: https://github.com/rlanvin/php-rrule/compare/v1.1.0...v1.2.0
2016-03-30 11:19:05 +02:00
[1.1.0]: https://github.com/rlanvin/php-rrule/compare/v1.0.1...v1.1.0
2016-04-03 15:41:30 +02:00
[1.0.1]: https://github.com/rlanvin/php-rrule/compare/v1.0.0...v1.0.1