Use correct year for generated birthdays events

'X-APPLE-OMIT-YEAR' is not always present, at least iOS 12.4 uses the hard coded date of 1604 (the start of the gregorian calendar) when the year is unknown.

cf. https://forums.bitfire.at/topic/2050/bday-without-year-for-vcard-3-0-if-server-drops-property-x-apple-omit-year and https://gitlab.com/CardBook/CardBook/-/issues/586

Signed-off-by: Sven Strickroth <email@cs-ware.de>
This commit is contained in:
Sven Strickroth 2020-11-13 15:57:12 +01:00 committed by backportbot[bot]
parent 7d2968aca0
commit 75cdfd8dc2
1 changed files with 6 additions and 1 deletions

View File

@ -235,7 +235,12 @@ class BirthdayService {
} }
} else { } else {
$originalYear = (int)$dateParts['year']; $originalYear = (int)$dateParts['year'];
// 'X-APPLE-OMIT-YEAR' is not always present, at least iOS 12.4 uses the hard coded date of 1604 (the start of the gregorian calendar) when the year is unknown
if ($originalYear == 1604) {
$originalYear = null;
$unknownYear = true;
$birthday = '1970-' . $dateParts['month'] . '-' . $dateParts['date'];
}
if ($originalYear < 1970) { if ($originalYear < 1970) {
$birthday = '1970-' . $dateParts['month'] . '-' . $dateParts['date']; $birthday = '1970-' . $dateParts['month'] . '-' . $dateParts['date'];
} }