note 111082 deleted from function.date by googleguy
| From: | googleguy@php.net | Date: | Sat, 12 Jan 2013 12:15:05 +0000 |
| Subject: | note 111082 deleted from function.date by googleguy | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-192994@lists.php.net to get a copy of this message | ||
Note Submitter: dev5er6 at gmail dot com
----
<?php
function date_i18n( $format = '', $time = false, $lang = 'rus' ){
static $_ = array(
'eng' => array(
'f' => array( 0 => 'n', 'January', 'February',
'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November',
'December' ),
),
'rus' => array(
'A' => array('_'=> 'A', 'AM' =>
'ÐÐ', 'PM' => 'ÐÐ' ),
'a' => array('_'=> 'a', 'am' =>
'дп', 'pm' => 'пп' ),
'D' => array('_'=> 'w', 'ÐÑ',
'Ðн', 'ÐÑ', 'СÑ', 'ЧÑ',
'ÐÑ', 'Сб' ),
'l' => array('_'=> 'w',
'ÐоÑкÑеÑенÑе',
'ÐонеделÑник', 'ÐÑоÑник',
'СÑеда', 'ЧеÑвеÑг',
'ÐÑÑниÑа', 'СÑббоÑа' ),
'F' => array( 0 => 'n', 'ЯнваÑÑ',
'ФевÑалÑ', 'ÐаÑÑ',
'ÐпÑелÑ', 'Ðай', 'ÐÑнÑ',
'ÐÑлÑ', 'ÐвгÑÑÑ',
'СенÑÑбÑÑ', 'ÐкÑÑбÑÑ',
'ÐоÑбÑÑ', 'ÐекабÑÑ' ),
'f' => array( 0 => 'n', 'ЯнваÑÑ',
'ФевÑалÑ', 'ÐаÑÑа',
'ÐпÑелÑ', 'ÐаÑ', 'ÐÑнÑ',
'ÐÑлÑ', 'ÐвгÑÑÑа',
'СенÑÑбÑÑ', 'ÐкÑÑбÑÑ',
'ÐоÑбÑÑ', 'ÐекабÑÑ' ),
'M' => array( 0 => 'n', 'Янв',
'Фев', 'ÐаÑ', 'ÐпÑ',
'Ðай', 'ÐÑн', 'ÐÑл',
'Ðвг', 'Сен', 'ÐкÑ',
'ÐоÑ', 'Ðек' ),
'S' => array( 1, 'ое' ),
)
);
if( !isset( $_[ $lang ] ) && file_exists( $p = dirname( __FILE__ ) . DIRECTORY_SEPARATOR .
$lang . '.ini' ) )
$_[ $lang ] = parse_ini_file( $p, true );
$date = '';
$time = ( !$time ) ? time() : ( ( intval( $time ) > 0 ) ? intval( $time ) : strtotime( $time )
);
$slash = false;
foreach( str_split( $format ) as $char )
if ( $char == '\\' && !$slash )
$slash = true;
elseif ( $slash && !( $slash = false ))
$date .= $char;
elseif( isset( $_[ $lang ][ $char ] ) )
$date .= $_[ $lang ][ $char ][ date( reset( $_[ $lang ][ $char ] ), $time ) ];
else
$date .= date ( $char, $time );
return $date;
}
/*ukr.ini' file *//*
[A]
_=A
AM=ÐÐ
PM=ÐÐ
[a]
_=a
am=дп
pm=пп
[D]
_=w
0=Ðд
1=Ðн
2=ÐÑ
3=СÑ
4=ЧÑ
5=ÐÑ
6=Сб
[l]
_=w
0=ÐедÑлÑ
1=Ðонедiлок
2=ÐiвÑоÑок
3=СеÑеда
4=ЧеÑвеÑ
5=ÐâÑÑниÑÑ
6=СÑбоÑа
[F]
0=n
1=СÑÑенÑ
2=ÐÑÑий
3=ÐеÑезенÑ
4=ÐвÑÑенÑ
5=ТÑавенÑ
6=ЧеÑвенÑ
7=ÐипенÑ
8=СеÑпенÑ
9=ÐеÑеÑенÑ
10=ÐовÑенÑ
11=ÐиÑÑопад
12=ÐÑÑденÑ
[f]
0=n
1=СÑÑнÑ
2=ÐÑÑого
3=ÐеÑезнÑ
4=ÐвÑÑнÑ
5=ТÑавнÑ
6=ЧеÑвнÑ
7=ÐипнÑ
8=СеÑпнÑ
9=ÐеÑеÑнÑ
10=ÐовÑнÑ
11=ÐиÑÑопада
12=ÐÑÑднÑ
[M]
0=n
1=СÑÑ
2=ÐÑÑ
3=ÐеÑ
4=ÐвÑ
5=ТÑа
6=ЧеÑ
7=Ðип
8=СеÑ
9=ÐеÑ
10=Ðов
11=ÐиÑ
12=ÐÑÑ
/*end*/
//test
$t=strtotime('1987-05-31 06:22:53');
$d='<\t\r><\t\h>~<\/\t\h><\t\d>'.implode('<\/\t\d><\t\d>',str_split('DlSFfMaA')).'<\/\t\d><\/\t\r>';
echo date('r',$t);
echo '<pre><table>';
foreach(array('rus','ukr','eng')as$lang)
echo str_replace('~',$lang,date_i18n($d,$t,$lang));
echo str_replace('~','def',date($d,$t));
echo '</table></pre>';
/* result
Sun, 31 May 1987 06:22:53 +0400
rus ÐÑ ÐоÑкÑеÑенÑе ое Ðай ÐаÑ
Ðай дп ÐÐ
ukr Ðд ÐедÑÐ»Ñ st ТÑÐ°Ð²ÐµÐ½Ñ Ð¢ÑавнÑ
ТÑа дп ÐÐ
eng Sun Sunday st May May May am AM
def Sun Sunday st May f May am AM
*/
?>