Horde_Icalendar::_parseDuration PHP Method

_parseDuration() protected method

Parses a DURATION value field.
protected _parseDuration ( string $text ) : integer
$text string A DURATION value.
return integer The duration in seconds.
    protected function _parseDuration($text)
    {
        if (!preg_match('/([+]?|[-])P(([0-9]+W)|([0-9]+D)|)(T(([0-9]+H)|([0-9]+M)|([0-9]+S))+)?/', trim($text), $durvalue)) {
            return false;
        }
        // Weeks.
        $duration = 7 * 86400 * intval($durvalue[3]);
        if (count($durvalue) > 4) {
            // Days.
            $duration += 86400 * intval($durvalue[4]);
        }
        if (count($durvalue) > 5) {
            // Hours.
            $duration += 3600 * intval($durvalue[7]);
            // Mins.
            if (isset($durvalue[8])) {
                $duration += 60 * intval($durvalue[8]);
            }
            // Secs.
            if (isset($durvalue[9])) {
                $duration += intval($durvalue[9]);
            }
        }
        // Sign.
        if ($durvalue[1] == "-") {
            $duration *= -1;
        }
        return $duration;
    }