public function testSub() { $d1 = new Duration('PT2S'); $d2 = new Duration('PT1S'); $d1->sub($d2); $this->assertEquals('PT1S', $d1->__toString()); $d1 = new Duration('PT2S'); $d2 = new Duration('PT4S'); $d1->sub($d2); $this->assertEquals('PT0S', $d1->__toString()); $d1 = new Duration('P1DT2H25M30S'); $d2 = new Duration('P1DT2H'); $d1->sub($d2); $this->assertEquals('PT25M30S', $d1->__toString()); $d1 = new Duration('PT20S'); $d2 = new Duration('PT20S'); $d1->sub($d2); $this->assertEquals('PT0S', $d1->__toString()); $d1 = new Duration('PT20S'); $d2 = new Duration('PT21S'); $d1->sub($d2); $this->assertTrue($d1->isNegative()); }