framework/i18n/CDateFormatter.php
protected function parseFormat($pattern)
	{
		static $formats=array();  // cache
		if(isset($formats[$pattern]))
			return $formats[$pattern];
		$tokens=array();
		$n=strlen($pattern);
		$isLiteral=false;
		$literal='';
		for($i=0;$i<$n;++$i)
		{
			$c=$pattern[$i];
			if($c==="'")
			{
				if($i<$n-1 && $pattern[$i+1]==="'")
				{
					$tokens[]="'";
					$i++;
				}
				elseif($isLiteral)
				{
					$tokens[]=$literal;
					$literal='';
					$isLiteral=false;
				}
				else
				{
					$isLiteral=true;
					$literal='';
				}
			}
			elseif($isLiteral)
				$literal.=$c;
			else
			{
				for($j=$i+1;$j<$n;++$j)
				{
					if($pattern[$j]!==$c)
						break;
				}
				$p=str_repeat($c,$j-$i);
				if(isset(self::$_formatters[$c]))
					$tokens[]=array(self::$_formatters[$c],$p);
				else
					$tokens[]=$p;
				$i=$j-1;
			}
		}
		if($literal!=='')
			$tokens[]=$literal;

		return $formats[$pattern]=$tokens;
	}
protected function parseFormat($pattern)
	{
		static $formats=array();  // cache
		if(isset($formats[$pattern]))
			return $formats[$pattern];
		$tokens=array();
		$n=strlen($pattern);
		$isLiteral=false;
		$literal='';
		for($i=0;$i<$n;++$i)
		{
			$c=$pattern[$i];
			if($c==="'")
			{
				if($i<$n-1 && $pattern[$i+1]==="'")
				{
					$tokens[]="'";
					$i++;
				}
				elseif($isLiteral)
				{
					$tokens[]=$literal;
					$literal='';
					$isLiteral=false;
				}
				else
				{
					$isLiteral=true;
					$literal='';
				}
			}
			elseif($isLiteral)
				$literal.=$c;
			else
			{
				for($j=$i+1;$j<$n;++$j)
				{
					if($pattern[$j]!==$c)
						break;
				}
				$p=str_repeat($c,$j-$i);
				if(isset(self::$_formatters[$c]))
					$tokens[]=array(self::$_formatters[$c],$p);
				else
					$tokens[]=$p;
				$i=$j-1;
			}
		}
		if($literal!=='')
			$tokens[]=$literal;

		return $formats[$pattern]=$tokens;
	}
protected function parseFormat ( $ pattern ) { static $ formats = array ( ) ; // cache if ( isset ( $ formats [ $ pattern ] ) ) return $ formats [ $ pattern ] ; $ tokens = array ( ) ; $ n = strlen ( $ pattern ) ; $ isLiteral = false ; $ literal = '' ; for ( $ i = 0 ; $ i < $ n ; ++ $ i ) { $ c = $ pattern [ $ i ] ; if ( $ c === "'" ) { if ( $ i < $ n - 1 && $ pattern [ $ i + 1 ] === "'" ) { $ tokens [ ] = "'" ; $ i ++ ; } elseif ( $ isLiteral ) { $ tokens [ ] = $ literal ; $ literal = '' ; $ isLiteral = false ; } else { $ isLiteral = true ; $ literal = '' ; } } elseif ( $ isLiteral ) $ literal .= $ c ; else { for ( $ j = $ i + 1 ; $ j < $ n ; ++ $ j ) { if ( $ pattern [ $ j ] !== $ c ) break ; } $ p = str_repeat ( $ c , $ j - $ i ) ; if ( isset ( self :: $ _formatters [ $ c ] ) ) $ tokens [ ] = array ( self :: $ _formatters [ $ c ] , $ p ) ; else $ tokens [ ] = $ p ; $ i = $ j - 1 ; } } if ( $ literal !== '' ) $ tokens [ ] = $ literal ; return $ formats [ $ pattern ] = $ tokens ; }
Parses the datetime format pattern.
@param string $pattern the pattern to be parsed
@return array tokenized parsing result
Parses the datetime format pattern .