/** * @dataProvider dateIntervalStrings * @param string $intervalSpec * @param array $parts */ public function testFromDateInterval($intervalSpec, array $parts) { $interval = DateInterval::fromDateInterval(new \DateInterval($intervalSpec)); self::assertInstanceOf(DateInterval::class, $interval); self::assertEquals($parts[0], $interval->y); self::assertEquals($parts[1], $interval->m); self::assertEquals($parts[2], $interval->d); self::assertEquals($parts[3], $interval->h); self::assertEquals($parts[4], $interval->i); self::assertEquals($parts[5], $interval->s); // Test for extreme case when diff between winter and summer time returns interval with negative hour $phpDate1 = new \DateTimeImmutable('2016-11-22 11:00:00'); $phpDate2 = new \DateTimeImmutable('2016-08-22 12:00:00'); $phpInterval = $phpDate1->diff($phpDate2); $interval = DateInterval::fromDateInterval($phpInterval); self::assertEquals('P3MT-1H', (string) $interval); }
/** * @param \DateTimeInterface $dateTime * @param bool $absolute * @return DateInterval */ public function diff($dateTime, $absolute = false) { return DateInterval::fromDateInterval(parent::diff($dateTime, $absolute)); }