date.php
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· PHP 代码 · 共 1,660 行 · 第 1/5 页
PHP
1,660 行
}
}
$notset = false;
}
return implode('', $output);
}
/**
* Returns a string representation of the date which is equal with the timestamp
*
* @return string
*/
public function __toString()
{
return $this->toString(null, $this->_Locale);
}
/**
* Returns a integer representation of the object
* But returns false when the given part is no value f.e. Month-Name
*
* @param string|integer|Zend_Date $part OPTIONAL Defines the date or datepart to return as integer
* @return integer|false
*/
public function toValue($part = null)
{
$result = $this->get($part);
if (is_numeric($result)) {
return intval("$result");
} else {
return false;
}
}
/**
* Returns a representation of a date or datepart
* This could be for example a localized monthname, the time without date,
* the era or only the fractional seconds. There are about 50 different supported date parts.
* For a complete list of supported datepart values look into the docu
*
* @param string $part OPTIONAL Part of the date to return, if null the timestamp is returned
* @param string|Zend_Locale $locale OPTIONAL Locale for parsing input
* @return integer|string date or datepart
*/
public function get($part = null, $locale = null)
{
if ($locale === null) {
$locale = $this->getLocale();
}
if (Zend_Locale::isLocale($part)) {
$locale = $part;
$part = null;
}
if ($part === null) {
$part = Zend_Date::TIMESTAMP;
}
if (!defined("self::".$part)) {
return $this->toString($part, $locale);
}
switch($part) {
// day formats
case Zend_Date::DAY :
return $this->date('d', $this->getUnixTimestamp(), false);
break;
case Zend_Date::WEEKDAY_SHORT :
$weekday = strtolower($this->date('D', $this->getUnixTimestamp(), false));
$day = Zend_Locale_Data::getContent($locale, 'day', array('gregorian', 'format', 'wide', $weekday));
return substr($day[$weekday], 0, 3);
break;
case Zend_Date::DAY_SHORT :
return $this->date('j', $this->getUnixTimestamp(), false);
break;
case Zend_Date::WEEKDAY :
$weekday = strtolower($this->date('D', $this->getUnixTimestamp(), false));
$day = Zend_Locale_Data::getContent($locale, 'day', array('gregorian', 'format', 'wide', $weekday));
return $day[$weekday];
break;
case Zend_Date::WEEKDAY_8601 :
return $this->date('N', $this->getUnixTimestamp(), false);
break;
case Zend_Date::DAY_SUFFIX :
return $this->date('S', $this->getUnixTimestamp(), false);
break;
case Zend_Date::WEEKDAY_DIGIT :
return $this->date('w', $this->getUnixTimestamp(), false);
break;
case Zend_Date::DAY_OF_YEAR :
return $this->date('z', $this->getUnixTimestamp(), false);
break;
case Zend_Date::WEEKDAY_NARROW :
$weekday = strtolower($this->date('D', $this->getUnixTimestamp(), false));
$day = Zend_Locale_Data::getContent($locale, 'day', array('gregorian', 'format', 'abbreviated', $weekday));
return substr($day[$weekday], 0, 1);
break;
case Zend_Date::WEEKDAY_NAME :
$weekday = strtolower($this->date('D', $this->getUnixTimestamp(), false));
$day = Zend_Locale_Data::getContent($locale, 'day', array('gregorian', 'format', 'abbreviated', $weekday));
return $day[$weekday];
break;
// week formats
case Zend_Date::WEEK :
return $this->date('W', $this->getUnixTimestamp(), false);
break;
// month formats
case Zend_Date::MONTH_NAME :
$month = $this->date('n', $this->getUnixTimestamp(), false);
$mon = Zend_Locale_Data::getContent($locale, 'month', array('gregorian', 'format', 'wide', $month));
return $mon[$month];
break;
case Zend_Date::MONTH :
return $this->date('m', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MONTH_NAME_SHORT :
$month = $this->date('n', $this->getUnixTimestamp(), false);
$mon = Zend_Locale_Data::getContent($locale, 'month', array('gregorian', 'format', 'abbreviated', $month));
return $mon[$month];
break;
case Zend_Date::MONTH_SHORT :
return $this->date('n', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MONTH_DAYS :
return $this->date('t', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MONTH_NAME_NARROW :
$month = $this->date('n', $this->getUnixTimestamp(), false);
$mon = Zend_Locale_Data::getContent($locale, 'month', array('gregorian', 'format', 'abbreviated', $month));
return substr($mon[$month], 0, 1);
break;
// year formats
case Zend_Date::LEAPYEAR :
return $this->date('L', $this->getUnixTimestamp(), false);
break;
case Zend_Date::YEAR_8601 :
return $this->date('o', $this->getUnixTimestamp(), false);
break;
case Zend_Date::YEAR :
return $this->date('Y', $this->getUnixTimestamp(), false);
break;
case Zend_Date::YEAR_SHORT :
return $this->date('y', $this->getUnixTimestamp(), false);
break;
case Zend_Date::YEAR_SHORT_8601 :
$year = $this->date('o', $this->getUnixTimestamp(), false);
return substr($year, -2);
break;
// time formats
case Zend_Date::MERIDIEM :
$am = $this->date('a', $this->getUnixTimestamp(), false);
$amlocal = Zend_Locale_Data::getContent($locale, 'daytime', 'gregorian');
return $amlocal[$am];
break;
case Zend_Date::SWATCH :
return $this->date('B', $this->getUnixTimestamp(), false);
break;
case Zend_Date::HOUR_SHORT_AM :
return $this->date('g', $this->getUnixTimestamp(), false);
break;
case Zend_Date::HOUR_SHORT :
return $this->date('G', $this->getUnixTimestamp(), false);
break;
case Zend_Date::HOUR_AM :
return $this->date('h', $this->getUnixTimestamp(), false);
break;
case Zend_Date::HOUR :
return $this->date('H', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MINUTE :
return $this->date('i', $this->getUnixTimestamp(), false);
break;
case Zend_Date::SECOND :
return $this->date('s', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MINUTE_SHORT :
return $this->date('i', $this->getUnixTimestamp(), false);
break;
case Zend_Date::SECOND_SHORT :
return $this->date('s', $this->getUnixTimestamp(), false);
break;
case Zend_Date::MILLISECOND :
return $this->_Fractional;
break;
// timezone formats
case Zend_Date::TIMEZONE_NAME :
return $this->date('e', $this->getUnixTimestamp(), false);
break;
case Zend_Date::DAYLIGHT :
return $this->date('I', $this->getUnixTimestamp(), false);
break;
case Zend_Date::GMT_DIFF :
return $this->date('O', $this->getUnixTimestamp(), false);
break;
case Zend_Date::GMT_DIFF_SEP :
return $this->date('P', $this->getUnixTimestamp(), false);
break;
case Zend_Date::TIMEZONE :
return $this->date('T', $this->getUnixTimestamp(), false);
break;
case Zend_Date::TIMEZONE_SECS :
return $this->date('Z', $this->getUnixTimestamp(), false);
break;
// date strings
case Zend_Date::ISO_8601 :
return $this->date('c', $this->getUnixTimestamp(), false);
break;
case Zend_Date::RFC_2822 :
return $this->date('r', $this->getUnixTimestamp(), false);
break;
case Zend_Date::TIMESTAMP :
return $this->getUnixTimestamp();
break;
// additional formats
case Zend_Date::ERA :
$year = $this->date('Y', $this->getUnixTimestamp(), false);
if ($year < 0) {
$era = Zend_Locale_Data::getContent($locale, 'erashort', array('gregorian', '0'));
return $era['0'];
}
$era = Zend_Locale_Data::getContent($locale, 'erashort', array('gregorian', '1'));
return $era['1'];
break;
case Zend_Date::ERA_NAME :
$year = $this->date('Y', $this->getUnixTimestamp(), false);
if ($year < 0) {
$era = Zend_Locale_Data::getContent($locale, 'era', array('gregorian', '0'));
return $era['0'];
}
$era = Zend_Locale_Data::getContent($locale, 'era', array('gregorian', '1'));
if (!isset($era['1'])) {
return false;
}
return $era['1'];
break;
case Zend_Date::DATES :
return $this->toString(Zend_Locale_Format::getDateFormat($locale), 'iso', $locale);
break;
case Zend_Date::DATE_FULL :
$date = Zend_Locale_Data::getContent($locale, 'dateformat', array('gregorian', 'full'));
return $this->toString($date['pattern'], 'iso', $locale);
break;
case Zend_Date::DATE_LONG :
$date = Zend_Locale_Data::getContent($locale, 'dateformat', array('gregorian', 'long'));
return $this->toString($date['pattern'], 'iso', $locale);
break;
case Zend_Date::DATE_MEDIUM :
$date = Zend_Locale_Data::getContent($locale, 'dateformat', array('gregorian', 'medium'));
return $this->toString($date['pattern'], 'iso', $locale);
break;
case Zend_Date::DATE_SHORT :
$date = Zend_Locale_Data::getContent($locale, 'dateformat', array('gregorian', 'short'));
return $this->toString($date['pattern'], 'iso', $locale);
break;
case Zend_Date::TIMES :
return $this->toString(Zend_Locale_Format::getTimeFormat($locale), 'iso', $locale);
break;
case Zend_Date::TIME_FULL :
$time = Zend_Locale_Data::getContent($locale, 'timeformat', array('gregorian', 'full'));
return $this->toString($time['pattern'], 'iso', $locale);
break;
case Zend_Date::TIME_LONG :
$time = Zend_Locale_Data::getContent($locale, 'timeformat', array('gregorian', 'long'));
return $this->toString($time['pattern'], 'iso', $locale);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?