Yii Framework v1.1.10 绫诲弬鑰

CDateFormatter

system.i18n
缁ф壙 class CDateFormatter » CComponent
婧愯嚜 1.0
鐗堟湰 $Id: CDateFormatter.php 2798 2011-01-01 19:29:03Z qiang.xue $
婧愮爜 framework/i18n/CDateFormatter.php
CDateFormatter鎻愪緵鏃ユ湡/鏃堕棿鏈湴鍖栧姛鑳姐

CDateFormatter鍏佽浣犱互鏈湴鍖栨柟寮忔牸寮忓寲鏃ユ湡鍜屾椂闂达紝娉ㄦ剰鍖哄垎澶у皬鍐欍 鏈湴瑙h瘧璇█妯″紡鏄疌DateFormatter鐨勫疄渚嬨 鍏宠仈锛屼緥濡傦細鏈堜唤鍜屾槦鏈熺殑鍚嶅瓧鏈夋墍涓嶅悓銆 鍦ㄤ笉鍚岀殑璇█鐜涓嬶紝鏍煎紡鐨勭粨鏋滀篃涓嶇浉鍚屻 CDateFormatter妯″紡鐨勫畾涔夋槸琚鍙殑銆 CLDR.

CDateFormatter鏀寔棰勫畾涔夋ā寮忥紝浠ュ強鑷畾涔夛細
  • 璇ユ柟娉formatDateTime()鏍煎紡鏃ユ湡鍜屾椂闂存椂锛屽悓鏃朵娇鐢ㄣ 棰勫畾涔夋ā寮忓叾涓寘鎷榝ull鈥欙紝鈥榣ong鈥欙紝鈥榤edium' (榛樿) 鍜屸榮hort鈥欍
  • 璇ユ柟娉format()鏍煎紡鎸囧畾妯″紡鐨勬棩鏈熷拰鏃堕棿銆 鍙傝http://www.unicode.org/reports/tr35/#Date_Format_Patterns 鐩稿叧妯″紡鐨勮缁嗗瓧绗︿俊鎭

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲嚱鏁般 CDateFormatter
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
format() 鏍规嵁鎸囧畾妯″紡鏍煎紡鍖栨棩鏈熴 CDateFormatter
formatDateTime() 鏍规嵁棰勫畾涔夋ā寮忔牸寮忓寲鏃ユ湡銆 CDateFormatter
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
formatDay() 鑾峰彇鏈堜唤鐨勪竴澶┿ CDateFormatter
formatDayInMonth() 鑾峰彇鏌愬ぉ鏄嚑鏈堢殑绗嚑涓槦鏈熷嚑銆備緥濡傦細涓冩湀鐨勭浜屼釜鏄熸湡涓 CDateFormatter
formatDayInWeek() 鑾峰彇鏄熸湡鍑犮 CDateFormatter
formatDayInYear() 鑾峰彇骞寸殑绗嚑澶╋紝渚嬪鍦ㄤ粖骞碵1-366]涓殑涓澶┿ CDateFormatter
formatEra() 鑾峰彇鎵鍦ㄥ勾浠姐備紶鍏ユ鏁版槸鍏巻锛屼紶鍏ヨ礋鏁版槸鍏厓鍓嶃 CDateFormatter
formatHour12() 鑾峰彇鍦12灏忔椂鏍煎紡鐨勫皬鏃讹紝鍗砙1-12] CDateFormatter
formatHour24() 鑾峰彇24灏忔椂鏍煎紡鐨勫皬鏃讹紝鍗砙0-23]銆 CDateFormatter
formatHourInDay() 鑾峰緱褰撳墠灏忔椂[1-24]銆 CDateFormatter
formatHourInPeriod() 鑾峰彇AM/PM鏍煎紡鐨勬椂闂达紝渚嬪锛歔0-11] CDateFormatter
formatMinutes() 鑾峰彇鍒嗛挓銆 CDateFormatter
formatMonth() 鑾峰彇鏈堛 CDateFormatter
formatPeriod() 鑾峰彇AM/PM鎸囩ず绗︺備腑鍗12鏃舵槸涓嬪崍锛屽崍澶12鏃舵槸涓婂崍銆 CDateFormatter
formatSeconds() 鑾峰彇绉掗挓銆 CDateFormatter
formatTimeZone() 鑾峰彇鏈嶅姟鍣ㄧ鐨勬椂鍖恒 CDateFormatter
formatWeekInMonth() 鑾峰彇鏈湀绗嚑鍛ㄣ CDateFormatter
formatWeekInYear() 鑾峰緱鍦ㄤ粖骞存槸绗嚑鍛ㄣ CDateFormatter
formatYear() 鑾峰彇骞淬 CDateFormatter
parseFormat() 瑙f瀽骞舵牸寮忓寲鏃ユ湡鍜屾椂闂淬 CDateFormatter

鏂规硶璇︾粏

__construct() 鏂规硶
public void __construct(mixed $locale)
$locale mixed 鍖哄煙ID锛堝瓧绗︿覆锛夋垨CLocale鐨勫疄渚
婧愮爜锛 framework/i18n/CDateFormatter.php#73 (鏄剧ず)
public function __construct($locale)
{
    if(
is_string($locale))
        
$this->_locale=CLocale::getInstance($locale);
    else
        
$this->_locale=$locale;
}

鏋勯犲嚱鏁般

format() 鏂规硶
public string format(string $pattern, mixed $time)
$pattern string 妯″紡(鍙傝http://www.unicode.org/reports/tr35/#Date_Format_Patterns)
$time mixed UNIX鏃堕棿鎴虫垨strtotime鏍煎紡鐨勫瓧绗︿覆
{return} string 鏍煎紡鍖栧悗鐨勬棩鏈熸椂闂淬
婧愮爜锛 framework/i18n/CDateFormatter.php#87 (鏄剧ず)
public function format($pattern,$time)
{
    if(
is_string($time))
    {
        if(
ctype_digit($time))
            
$time=(int)$time;
        else
            
$time=strtotime($time);
    }
    
$date=CTimestamp::getDate($time,false,false);
    
$tokens=$this->parseFormat($pattern);
    foreach(
$tokens as &$token)
    {
        if(
is_array($token)) // a callback: method name, sub-pattern
            
$token=$this->{$token[0]}($token[1],$date);
    }
    return 
implode('',$tokens);
}

鏍规嵁鎸囧畾妯″紡鏍煎紡鍖栨棩鏈熴

formatDateTime() 鏂规硶
public string formatDateTime(mixed $timestamp, string $dateWidth='medium', string $timeWidth='medium')
$timestamp mixed UNIX鏃堕棿鎴虫垨strtotime鏍煎紡鐨勫瓧绗︿覆
$dateWidth string 鏃ユ湡妯″紡锛屽畠鍙互鏄 鈥榝ull鈥欙紝鈥榣ong鈥欙紝鈥榤edium鈥欏拰鈥榮hort鈥欍 濡傛灉涓虹┖锛岃繖灏嗘剰鍛崇潃鏃ユ湡閮ㄥ垎涓嶄細琚牸寮忓寲銆
$timeWidth string 鏃堕棿妯″紡锛屽畠鍙互鏄榝ull鈥欙紝鈥榣ong鈥欙紝鈥榤edium鈥欏拰 鈥榮hort鈥欍 濡傛灉涓虹┖锛岃繖灏嗘剰鍛崇潃鏃堕棿閮ㄥ垎涓嶄細琚牸寮忓寲銆
{return} string 鏍煎紡鍖栧悗鐨勬棩鏈熷拰鏃堕棿銆
婧愮爜锛 framework/i18n/CDateFormatter.php#116 (鏄剧ず)
public function formatDateTime($timestamp,$dateWidth='medium',$timeWidth='medium')
{
    if(!empty(
$dateWidth))
        
$date=$this->format($this->_locale->getDateFormat($dateWidth),$timestamp);

    if(!empty(
$timeWidth))
        
$time=$this->format($this->_locale->getTimeFormat($timeWidth),$timestamp);

    if(isset(
$date) && isset($time))
    {
        
$dateTimePattern=$this->_locale->getDateTimeFormat();
        return 
strtr($dateTimePattern,array('{0}'=>$time,'{1}'=>$date));
    }
    else if(isset(
$date))
        return 
$date;
    else if(isset(
$time))
        return 
$time;
}

鏍规嵁棰勫畾涔夋ā寮忔牸寮忓寲鏃ユ湡銆 鍦ㄩ瀹氫箟妯″紡鐨勫熀纭涓婅缃棩鏈熷拰鏃堕棿绮惧害銆

formatDay() 鏂规硶
protected string formatDay(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 杩斿洖鏈堢殑涓澶
婧愮爜锛 framework/i18n/CDateFormatter.php#259 (鏄剧ず)
protected function formatDay($pattern,$date)
{
    
$day=$date['mday'];
    if(
$pattern==='d')
        return 
$day;
    else if(
$pattern==='dd')
        return 
str_pad($day,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for day of the month must be "d" or "dd".'));
}

鑾峰彇鏈堜唤鐨勪竴澶┿ "d" 闈炲~鍏咃紝鈥渄d鈥濇绘槸杩斿洖涓や綅鏁扮殑澶╂暟锛屼緥濡傦細鈥05鈥濄

formatDayInMonth() 鏂规硶
protected integer formatDayInMonth(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 鏌愭湀鐨勪竴澶
婧愮爜锛 framework/i18n/CDateFormatter.php#292 (鏄剧ず)
protected function formatDayInMonth($pattern,$date)
{
    if(
$pattern==='F')
        return (int)((
$date['mday']+6)/7);
    else
        throw new 
CException(Yii::t('yii','The pattern for day in month must be "F".'));
}

鑾峰彇鏌愬ぉ鏄嚑鏈堢殑绗嚑涓槦鏈熷嚑銆備緥濡傦細涓冩湀鐨勭浜屼釜鏄熸湡涓

formatDayInWeek() 鏂规硶
protected string formatDayInWeek(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 鏄熸湡鍑犮
婧愮爜锛 framework/i18n/CDateFormatter.php#310 (鏄剧ず)
protected function formatDayInWeek($pattern,$date)
{
    
$day=$date['wday'];
    switch(
$pattern)
    {
        case 
'E':
        case 
'EE':
        case 
'EEE':
        case 
'eee':
            return 
$this->_locale->getWeekDayName($day,'abbreviated');
        case 
'EEEE':
        case 
'eeee':
            return 
$this->_locale->getWeekDayName($day,'wide');
        case 
'EEEEE':
        case 
'eeeee':
            return 
$this->_locale->getWeekDayName($day,'narrow');
        case 
'e':
        case 
'ee':
        case 
'c':
            return 
$day $day 7;
        case 
'ccc':
            return 
$this->_locale->getWeekDayName($day,'abbreviated',true);
        case 
'cccc':
            return 
$this->_locale->getWeekDayName($day,'wide',true);
        case 
'ccccc':
            return 
$this->_locale->getWeekDayName($day,'narrow',true);
        default:
            throw new 
CException(Yii::t('yii','The pattern for day of the week must be "E", "EE", "EEE", "EEEE", "EEEEE", "e", "ee", "eee", "eeee", "eeeee", "c", "cccc" or "ccccc".'));
    }
}

鑾峰彇鏄熸湡鍑犮 "E", "EE", "EEE" 灏嗚繑鍥炴槦鏈熺缉鍐欏悕绉帮紝渚嬪锛氣淭ues鈥; "EEEE" 灏嗚繑鍥炲畬鏁寸殑鏄熸湡鍚嶇О; "EEEEE" 灏嗚繑鍥炵畝鍐欑殑鏄熸湡鍚嶇О锛屼緥濡傦細鈥淭鈥;

formatDayInYear() 鏂规硶
protected integer formatDayInYear(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 灏忔椂AM锛廝M鏍煎紡銆
婧愮爜锛 framework/i18n/CDateFormatter.php#276 (鏄剧ず)
protected function formatDayInYear($pattern,$date)
{
    
$day=$date['yday'];
    if((
$n=strlen($pattern))<=3)
        return 
str_pad($day,$n,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for day in year must be "D", "DD" or "DDD".'));
}

鑾峰彇骞寸殑绗嚑澶╋紝渚嬪鍦ㄤ粖骞碵1-366]涓殑涓澶┿

formatEra() 鏂规硶
protected string formatEra(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 骞翠唤
婧愮爜锛 framework/i18n/CDateFormatter.php#521 (鏄剧ず)
protected function formatEra($pattern,$date)
{
    
$era=$date['year']>0;
    switch(
$pattern)
    {
        case 
'G':
        case 
'GG':
        case 
'GGG':
            return 
$this->_locale->getEraName($era,'abbreviated');
        case 
'GGGG':
            return 
$this->_locale->getEraName($era,'wide');
        case 
'GGGGG':
            return 
$this->_locale->getEraName($era,'narrow');
        default:
            throw new 
CException(Yii::t('yii','The pattern for era must be "G", "GG", "GGG", "GGGG" or "GGGGG".'));
    }
}

鑾峰彇鎵鍦ㄥ勾浠姐備紶鍏ユ鏁版槸鍏巻锛屼紶鍏ヨ礋鏁版槸鍏厓鍓嶃

formatHour12() 鏂规硶
protected string formatHour12(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 12灏忔椂鏍煎紡鐨勫皬鏃躲
婧愮爜锛 framework/i18n/CDateFormatter.php#385 (鏄剧ず)
protected function formatHour12($pattern,$date)
{
    
$hour=$date['hours'];
    
$hour=($hour==12|$hour==0)?12:($hour)%12;
    if(
$pattern==='h')
        return 
$hour;
    else if(
$pattern==='hh')
        return 
str_pad($hour,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for 12 hour format must be "h" or "hh".'));
}

鑾峰彇鍦12灏忔椂鏍煎紡鐨勫皬鏃讹紝鍗砙1-12] 鈥渉鈥濋潪濉厖锛屸渉h鈥濆皢杩斿洖涓や綅瀛楃銆

formatHour24() 鏂规硶
protected string formatHour24(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 24灏忔椂鏍煎紡鐨勫皬鏃躲
婧愮爜锛 framework/i18n/CDateFormatter.php#367 (鏄剧ず)
protected function formatHour24($pattern,$date)
{
    
$hour=$date['hours'];
    if(
$pattern==='H')
        return 
$hour;
    else if(
$pattern==='HH')
        return 
str_pad($hour,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for 24 hour format must be "H" or "HH".'));
}

鑾峰彇24灏忔椂鏍煎紡鐨勫皬鏃讹紝鍗砙0-23]銆 鈥淗鈥濋潪濉厖锛屸淗H鈥濆皢杩斿洖涓や綅瀛楃銆

formatHourInDay() 鏂规硶
protected integer formatHourInDay(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 鏃堕棿[1-24]
婧愮爜锛 framework/i18n/CDateFormatter.php#404 (鏄剧ず)
protected function formatHourInDay($pattern,$date)
{
    
$hour=$date['hours']==0?24:$date['hours'];
    if(
$pattern==='k')
        return 
$hour;
    else if(
$pattern==='kk')
        return 
str_pad($hour,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for hour in day must be "k" or "kk".'));
}

鑾峰緱褰撳墠灏忔椂[1-24]銆 鈥榢鈥欓潪濉厖锛屸榢k鈥欎互涓や釜瀛楃濉厖銆

formatHourInPeriod() 鏂规硶
protected integer formatHourInPeriod(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 鏍煎紡鍖栧悗鐨凙M/PM鏃堕棿
婧愮爜锛 framework/i18n/CDateFormatter.php#422 (鏄剧ず)
protected function formatHourInPeriod($pattern,$date)
{
    
$hour=$date['hours']%12;
    if(
$pattern==='K')
        return 
$hour;
    else if(
$pattern==='KK')
        return 
str_pad($hour,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for hour in AM/PM must be "K" or "KK".'));
}

鑾峰彇AM/PM鏍煎紡鐨勬椂闂达紝渚嬪锛歔0-11] 鈥淜鈥濋潪濉厖锛屸淜K鈥濆皢杩斿洖2浣嶅瓧绗︺

formatMinutes() 鏂规硶
protected string formatMinutes(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 鍒嗛挓銆
婧愮爜锛 framework/i18n/CDateFormatter.php#440 (鏄剧ず)
protected function formatMinutes($pattern,$date)
{
    
$minutes=$date['minutes'];
    if(
$pattern==='m')
        return 
$minutes;
    else if(
$pattern==='mm')
        return 
str_pad($minutes,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for minutes must be "m" or "mm".'));
}

鑾峰彇鍒嗛挓銆 鈥渕鈥濋潪濉厖锛屸渕m鈥濆皢杩斿洖2浣嶅瓧绗︺

formatMonth() 鏂规硶
protected string formatMonth(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 杩斿洖鏈堜唤鍚嶇О
婧愮爜锛 framework/i18n/CDateFormatter.php#222 (鏄剧ず)
protected function formatMonth($pattern,$date)
{
    
$month=$date['mon'];
    switch(
$pattern)
    {
        case 
'M':
            return 
$month;
        case 
'MM':
            return 
str_pad($month,2,'0',STR_PAD_LEFT);
        case 
'MMM':
            return 
$this->_locale->getMonthName($month,'abbreviated');
        case 
'MMMM':
            return 
$this->_locale->getMonthName($month,'wide');
        case 
'MMMMM':
            return 
$this->_locale->getMonthName($month,'narrow');
        case 
'L':
            return 
$month;
        case 
'LL':
            return 
str_pad($month,2,'0',STR_PAD_LEFT);
        case 
'LLL':
            return 
$this->_locale->getMonthName($month,'abbreviated'true);
        case 
'LLLL':
            return 
$this->_locale->getMonthName($month,'wide'true);
        case 
'LLLLL':
            return 
$this->_locale->getMonthName($month,'narrow'true);
        default:
            throw new 
CException(Yii::t('yii','The pattern for month must be "M", "MM", "MMM", "MMMM", "L", "LL", "LLL" or "LLLL".'));
    }
}

鑾峰彇鏈堛 "M" 灏嗚繑鍥1鑷12鐨勬暣鏁; "MM" 灏嗚繑鍥炰袱涓暟瀛楋紝濡傛灉娌℃湁涓や綅浠0濉厖锛屽锛氣05鈥; "MMM" 灏嗚繑鍥炵殑缂╁啓鏈堜唤鍚嶇О锛屼緥濡傦細鈥淛an鈥; "MMMM" 灏嗚繑鍥炵殑瀹屾暣鏈堜唤鍚嶇О锛屼緥濡傦細鈥淛anuary鈥; "MMMMM" 灏嗚繑鍥炵畝鍐欑殑鏈堜唤鍚嶇О锛屼緥濡傦細鈥淛鈥;

formatPeriod() 鏂规硶
protected string formatPeriod(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 涓婂崍鎴栦笅鍗堟爣蹇楃
婧愮爜锛 framework/i18n/CDateFormatter.php#347 (鏄剧ず)
protected function formatPeriod($pattern,$date)
{
    if(
$pattern==='a')
    {
        if(
intval($date['hours']/12))
            return 
$this->_locale->getPMName();
        else
            return 
$this->_locale->getAMName();
    }
    else
        throw new 
CException(Yii::t('yii','The pattern for AM/PM marker must be "a".'));
}

鑾峰彇AM/PM鎸囩ず绗︺備腑鍗12鏃舵槸涓嬪崍锛屽崍澶12鏃舵槸涓婂崍銆

formatSeconds() 鏂规硶
protected string formatSeconds(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 绉掗挓
婧愮爜锛 framework/i18n/CDateFormatter.php#458 (鏄剧ず)
protected function formatSeconds($pattern,$date)
{
    
$seconds=$date['seconds'];
    if(
$pattern==='s')
        return 
$seconds;
    else if(
$pattern==='ss')
        return 
str_pad($seconds,2,'0',STR_PAD_LEFT);
    else
        throw new 
CException(Yii::t('yii','The pattern for seconds must be "s" or "ss".'));
}

鑾峰彇绉掗挓銆 鈥渟鈥濋潪濉厖锛屸渟s鈥濆皢杩斿洖2浣嶅瓧绗︺

formatTimeZone() 鏂规硶
protected string formatTimeZone(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 鏃跺尯
婧愮爜锛 framework/i18n/CDateFormatter.php#504 (鏄剧ず)
protected function formatTimeZone($pattern,$date)
{
    if(
$pattern[0]==='z' || $pattern[0]==='v')
        return @
date('T', @mktime($date['hours'], $date['minutes'], $date['seconds'], $date['mon'], $date['mday'], $date['year']));
    elseif(
$pattern[0]==='Z')
        return @
date('O', @mktime($date['hours'], $date['minutes'], $date['seconds'], $date['mon'], $date['mday'], $date['year']));
    else
        throw new 
CException(Yii::t('yii','The pattern for time zone must be "z" or "v".'));
}

鑾峰彇鏈嶅姟鍣ㄧ鐨勬椂鍖恒

formatWeekInMonth() 鏂规硶
protected integer formatWeekInMonth(array $pattern, string $date)
$pattern array 妯″紡銆
$date string CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 鏈湀绗嚑鍛
婧愮爜锛 framework/i18n/CDateFormatter.php#489 (鏄剧ず)
protected function formatWeekInMonth($pattern,$date)
{
    if(
$pattern==='W')
        return @
date('W',@mktime(0,0,0,$date['mon'], $date['mday'],$date['year']))-date('W'mktime(0,0,0,$date['mon'],1,$date['year']))+1;
    else
        throw new 
CException(Yii::t('yii','The pattern for week in month must be "W".'));
}

鑾峰彇鏈湀绗嚑鍛ㄣ

formatWeekInYear() 鏂规硶
protected integer formatWeekInYear(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} integer 浠婂勾绗嚑鍛
婧愮爜锛 framework/i18n/CDateFormatter.php#475 (鏄剧ず)
protected function formatWeekInYear($pattern,$date)
{
    if(
$pattern==='w')
        return @
date('W',@mktime(0,0,0,$date['mon'],$date['mday'],$date['year']));
    else
        throw new 
CException(Yii::t('yii','The pattern for week in year must be "w".'));
}

鑾峰緱鍦ㄤ粖骞存槸绗嚑鍛ㄣ

formatYear() 鏂规硶
protected string formatYear(string $pattern, array $date)
$pattern string 妯″紡銆
$date array CTimestamp::getdate涓繑鍥炵殑缁撴灉銆
{return} string 鏍煎紡鍖栧悗鐨勫勾浠
婧愮爜锛 framework/i18n/CDateFormatter.php#202 (鏄剧ず)
protected function formatYear($pattern,$date)
{
    
$year=$date['year'];
    if(
$pattern==='yy')
        return 
str_pad($year%100,2,'0',STR_PAD_LEFT);
    else
        return 
str_pad($year,strlen($pattern),'0',STR_PAD_LEFT);
}

鑾峰彇骞淬 "yy" 灏嗚繑鍥炰袱浣嶆暟瀛楃殑骞翠唤銆 "y...y" 灏嗗墠闈㈢敤0琛ㄧず锛屼緥濡傦細鈥測yyyy鈥濆皢浜х敓"02008"鍜2008骞淬

parseFormat() 鏂规硶
protected array parseFormat(string $pattern)
$pattern string 闇瑕佽В鏋愮殑妯″紡
{return} array 鏍囪瑙f瀽缁撴灉
婧愮爜锛 framework/i18n/CDateFormatter.php#140 (鏄剧ず)
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-&& $pattern[$i+1]==="'")
            {
                
$tokens[]="'";
                
$i++;
            }
            else if(
$isLiteral)
            {
                
$tokens[]=$literal;
                
$literal='';
                
$isLiteral=false;
            }
            else
            {
                
$isLiteral=true;
                
$literal='';
            }
        }
        else if(
$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;
}

瑙f瀽骞舵牸寮忓寲鏃ユ湡鍜屾椂闂淬

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.