|
@@ -97,6 +97,10 @@ class DateTimeHelper
|
|
|
{
|
|
|
if(is_null($i)) {
|
|
|
return null;
|
|
|
+ } elseif(sizeof(get_object_vars($i)) == 0) {
|
|
|
+ throw new \InvalidArgumentException(
|
|
|
+ sprintf("given interval is invalid\n%s", print_r($i, true))
|
|
|
+ );
|
|
|
} else {
|
|
|
$i = self::deinvertInterval($i);
|
|
|
if($i->y < 0 || $i->m < 0 || $i->d < 0 || $i->h < 0 || $i->i < 0 || $i->s < 0) {
|
|
@@ -133,6 +137,12 @@ class DateTimeHelper
|
|
|
$repetitions++;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ $start_iso = $p->start->format(\DateTime::ATOM);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $interval_iso = self::intervalToIso(get_object_vars($p)['interval']);
|
|
|
switch($repetitions) {
|
|
|
case -1:
|
|
|
|
|
@@ -145,18 +155,9 @@ class DateTimeHelper
|
|
|
'given period does not contain any valid date'
|
|
|
);
|
|
|
case 0:
|
|
|
- return sprintf(
|
|
|
- '%s/%s',
|
|
|
- $p->start->format(\DateTime::ATOM),
|
|
|
- self::intervalToIso($p->getDateInterval())
|
|
|
- );
|
|
|
+ return sprintf('%s/%s', $start_iso, $interval_iso);
|
|
|
default:
|
|
|
- return sprintf(
|
|
|
- 'R%d/%s/%s',
|
|
|
- $repetitions,
|
|
|
- $p->start->format(\DateTime::ATOM),
|
|
|
- self::intervalToIso($p->getDateInterval())
|
|
|
- );
|
|
|
+ return sprintf('R%d/%s/%s', $repetitions, $start_iso, $interval_iso);
|
|
|
}
|
|
|
}
|
|
|
}
|