parseDuration() public static method

Interprets a ISO8601 duration value relative to a given timestamp.
public static parseDuration ( string $duration, integer | null $timestamp = null ) : integer | null
$duration string The duration, as a string.
$timestamp integer | null The unix timestamp we should apply the duration to. Optional, default to the current time.
return integer | null The new timestamp, after the duration is applied.
Example #1
0
 /**
  * Tests the parseDuration method of the OneLogin_Saml2_Utils
  *
  * @covers OneLogin_Saml2_Utils::parseDuration
  */
 public function testParseDuration()
 {
     $duration = 'PT1393462294S';
     $timestamp = 1393876825;
     $parsedDuration = OneLogin_Saml2_Utils::parseDuration($duration, $timestamp);
     $this->assertEquals(2787339119, $parsedDuration);
     $parsedDuration2 = OneLogin_Saml2_Utils::parseDuration($duration);
     $this->assertTrue($parsedDuration2 > $parsedDuration);
     $invalidDuration = 'PT1Y';
     try {
         $parsedDuration3 = OneLogin_Saml2_Utils::parseDuration($invalidDuration);
         $this->assertFalse(true);
     } catch (Exception $e) {
         $this->assertContains('Invalid ISO 8601 duration', $e->getMessage());
     }
     $newDuration = 'P1Y1M';
     $parsedDuration4 = OneLogin_Saml2_Utils::parseDuration($newDuration, $timestamp);
     $this->assertEquals(1428091225, $parsedDuration4);
     $negDuration = '-P14M';
     $parsedDuration5 = OneLogin_Saml2_Utils::parseDuration($negDuration, $timestamp);
     $this->assertEquals(1357243225, $parsedDuration5);
 }