note 110241 added to function.date
| From: | dev5er6 at gmail dot com | Date: | Thu, 04 Oct 2012 11:39:10 +0000 |
| Subject: | note 110241 added to function.date | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-191127@lists.php.net to get a copy of this message | ||
<?php
function
date_lang($format='',$time=false,$mode=null/**/,$lang=false){//**/){$lang='ru-RU';/**/
if(!$lang)$lang='ru-RU';
static $static=array();
if(!$format)return'';
$date='';
$encoding='UTF-8';
$charset='charset';
$time=($time&&is_numeric($time)&&$time>0)?$time:(($time&&is_string($time))?strtotime($time):time());
if(isset($static[$lang])&&count($static[$lang]))$translate=&$static[$lang];
else{
$static=array(
'en-GB'=>array($charset=>'UTF-8','format'=>'f d
Y'),
'ru-RU'=>array($charset=>/**/'windows-1251',//**/'cp-1251',/**/
'format'=>'d F Y',
'A'=>array('A','AM'=>'ÐÐ','PM'=>'ÐÐ'),
'a'=>array('a','am'=>'дп','pm'=>'пп'),
'D'=>array('D','Sun'=>'ÐÑ','Mon'=>'Ðн','Tue'=>'ÐÑ','Wed'=>'СÑ','Thu'=>'ЧÑ','Fri'=>'ÐÑ','Sat'=>'Сб'),
'l'=>array('l',
'Sunday'=>'ÐоÑкÑеÑенÑе',
'Monday'=>'ÐонеделÑник',
'Tuesday'=>'ÐÑоÑник',
'Wednesday'=>'СÑеда',
'Thursday'=>'ЧеÑвеÑг',
'Friday'=>'ÐÑÑниÑа',
'Saturday'=>'СÑббоÑа'),
'f'=>array('F',
'January'=>'ЯнваÑÑ',
'February'=>'ФевÑалÑ',
'March'=>'ÐаÑÑ',
'April'=>'ÐпÑелÑ',
'May'=>'Ðай', 'June'=>'ÐÑнÑ',
'July'=>'ÐÑлÑ',
'August'=>'ÐвгÑÑÑ',
'September'=>'СенÑÑбÑÑ',
'October'=>'ÐкÑÑбÑÑ',
'November'=>'ÐоÑбÑÑ',
'December'=>'ÐекабÑÑ'),
'F'=>array('F',
'January'=>'ЯнваÑÑ',
'February'=>'ФевÑалÑ',
'March'=>'ÐаÑÑа',
'April'=>'ÐпÑелÑ',
'May'=>'ÐаÑ', 'June'=>'ÐÑнÑ',
'July'=>'ÐÑлÑ',
'August'=>'ÐвгÑÑÑа',
'September'=>'СенÑÑбÑÑ',
'October'=>'ÐкÑÑбÑÑ',
'November'=>'ÐоÑбÑÑ',
'December'=>'ÐекабÑÑ'),
'S'=>array('S','st'=>'ое','nd'=>'ое','rd'=>'ое','th'=>'ое')
),
'uk-UA'=>array($charset=>/**/'windows-1251',//**/'cp-1251',/**/
'format'=>'d F Y',
'Ð'=>array('A','AM'=>'ÐÐ','PM'=>'ÐÐ'),
'а'=>array('a','am'=>'дп','pm'=>'пп'),
'Ð'=>array('D','Sun'=>'Ðд','Mon'=>'Ðн','Tue'=>'ÐÑ','Wed'=>'СÑ','Thu'=>'ЧÑ','Fri'=>'ÐÑ','Sat'=>'Сб'),
'л'=>array('l',
'Sunday'=>'ÐедÑлÑ',
'Monday'=>'Ðонедiлок',
'Tuesday'=>'ÐiвÑоÑок',
'Wednesday'=>'СеÑеда',
'Thursday'=>'ЧеÑвеÑ',
'Friday'=>'ÐâÑÑниÑÑ',
'Saturday'=>'СÑбоÑа'),
'Ф'=>array('F',
'January'=>'СÑÑенÑ',
'February'=>'ÐÑÑий',
'March'=>'ÐеÑезенÑ',
'April'=>'ÐвÑÑенÑ',
'May'=>'ТÑавенÑ',
'June'=>'ЧеÑвенÑ',
'July'=>'ÐипенÑ',
'August'=>'СеÑпенÑ',
'September'=>'ÐеÑеÑенÑ',
'October'=>'ÐовÑенÑ',
'November'=>'ÐиÑÑопад',
'December'=>'ÐÑÑденÑ'),
'Ñ'=>array('F',
'January'=>'СÑÑнÑ',
'February'=>'ÐÑÑого',
'March'=>'ÐеÑезнÑ',
'April'=>'ÐвÑÑнÑ',
'May'=>'ТÑавнÑ',
'June'=>'ЧеÑвнÑ',
'July'=>'ÐипнÑ',
'August'=>'СеÑпнÑ',
'September'=>'ÐеÑеÑнÑ',
'October'=>'ÐовÑнÑ',
'November'=>'ÐиÑÑопада',
'December'=>'ÐÑÑднÑ'),
'S'=>array('S','st'=>'ое','nd'=>'ое','rd'=>'ое','th'=>'ое')
)
);
if(isset($static[$lang])&&count($static[$lang]))$translate=&$static[$lang];
// else return trigger_error(sprintf('%s( \'%s\',%s,%s,\'%s\')
Couldn\'t find ARRAY_KEY
"%s"!',__FUNCTION__,$format,$time,$mode,$lang,$lang),E_USER_WARNING);
}
if(is_bool($format))$format=@$translate['format'];
$charset=isset($translate[$charset])?$translate[$charset]:$encoding;
$slash=false;
foreach(str_split(iconv($encoding,$charset,$format))as$char)
if($char=='\\')continue$slash=true;
elseif($slash&&$date.=iconv($charset,$encoding,$char))continue$slash=false;
else $date.=(!isset($translate[$key=iconv($charset,$encoding,$char)]))
?iconv($charset,$encoding,date($key,$time))
:$translate[$key][date($translate[$key][0],$time)];
if(!is_null($mode))$date=mb_convert_case($date,$mode,$encoding);
return $date;
}?>
<?php
//Examples
echo date_lang('л \Ñ\и\Ñ\л\о
jS','2012-10-04',MB_CASE_UPPER,'uk-UA'); //ЧÐТÐÐÐ
ЧÐСÐÐ 4ÐÐ
?>
----
Server IP: 89.251.21.32
Probable Submitter: 89.251.21.33 (proxied: 217.119.19.86)
----
Manual Page -- http://www.php.net/manual/en/function.date.php
Edit -- https://master.php.net/note/edit/110241
Del: integrated -- https://master.php.net/note/delete/110241/integrated
Del: useless -- https://master.php.net/note/delete/110241/useless
Del: bad code -- https://master.php.net/note/delete/110241/bad+code
Del: spam -- https://master.php.net/note/delete/110241/spam
Del: non-english -- https://master.php.net/note/delete/110241/non-english
Del: in docs -- https://master.php.net/note/delete/110241/in+docs
Del: other reasons-- https://master.php.net/note/delete/110241
Reject -- https://master.php.net/note/reject/110241
Search -- https://master.php.net/manage/user-notes.php