Fix PHP 7.2 compatibility

This commit is contained in:
Aleksander Machniak 2022-12-07 14:50:50 +01:00
parent 0530881f4b
commit 748f2430cd

View file

@ -866,13 +866,13 @@ class libcalendaring_vcalendar implements Iterator
$dateonly = !$prop->hasTime();
foreach ($prop->getDateTimes() as $item) {
$item = libcalendaring_datetime::createFromImmutable($item);
$item = self::toDateTime($item);
$item->_dateonly = $dateonly;
$dt[] = $item;
}
}
else {
$dt = libcalendaring_datetime::createFromImmutable($prop->getDateTime());
$dt = self::toDateTime($prop->getDateTime());
if (!$prop->hasTime()) {
$dt->_dateonly = true;
}
@ -895,7 +895,7 @@ class libcalendaring_vcalendar implements Iterator
$end = DateTimeParser::parseDateTime($end);
}
$dt[] = [libcalendaring_datetime::createFromImmutable($start), libcalendaring_datetime::createFromImmutable($end)];
$dt[] = [self::toDateTime($start), self::toDateTime($end)];
}
catch (Exception $e) {
// ignore single date parse errors
@ -903,7 +903,7 @@ class libcalendaring_vcalendar implements Iterator
}
}
else if ($prop instanceof \DateTimeInterface) {
$dt = libcalendaring_datetime::createFromImmutable($prop);
$dt = self::toDateTime($prop);
}
// force return value to array if requested
@ -1489,6 +1489,18 @@ class libcalendaring_vcalendar implements Iterator
return $vt;
}
/**
* Convert DateTime into libcalendaring_datetime
*/
private static function toDateTime($date)
{
return libcalendaring_datetime::createFromFormat(
'Y-m-d\\TH:i:s',
$date->format('Y-m-d\\TH:i:s'),
$date->getTimezone()
);
}
/*** Implement PHP 5 Iterator interface to make foreach work ***/