2013-08-29 5 views
6

मैं setlocale साथ रूसी भाषा का उपयोग करने के कोशिश कर रहा हूँ पर काम नहीं कर, गुरुवार 29 अगस्त"ru_ru" (रूसी) setlocale दिनांक और समय

की उम्मीद है: четверг , Август 29

किसी भी मदद की अत्यधिक सराहना की जाएगी।

+0

"स्थान" हमेशा सर्वर विन्यास पर निर्भर करता है। क्या आपने रूसी को अपने सर्वर में जोड़ा है? –

+0

क्या आपने यह कोशिश की है: 'सेटलोकेल (एलसी_ALL,' ru_RU '); '? मुझे लगता है कि मामला मायने रखता है और आपको दूसरे "आरयू" में दोनों अक्षरों को कैपिटल करना पड़ सकता है। – DeeDee

+0

क्या मंच? विंडोज लोकेल नाम (उदाहरण के लिए) * निक्स लोकेल नामों से बिल्कुल अलग हैं: हालांकि, आप लोकल-तिथियों के लिए [strftime()] (http://www.php.net/manual/en/function.strftime.php) चाहते हैं , तिथि नहीं() –

उत्तर

11

इसे मिला! यदि आप लिनक्स होस्टिंग का उपयोग कर रहे हैं तो कोशिश करें:

setlocale(LC_ALL, 'ru_RU.UTF-8'); 

ठीक काम करेगा। मामले में आप विंडोज़ का उपयोग कर रहे तो होस्टिंग का प्रयास करें:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
setlocale(LC_ALL, 'russian'); 
2
var_dump(setlocale(LC_ALL, 'ru_RU.utf8')); 

फ़ंक्शन सेटलोकेल सिस्टम कॉल का परिणाम देता है। मुझे लगता है कि यह आरयू होना चाहिए, रु नहीं।

3

रूस स्थान और UTF-8 यह इस तरह कोड का उपयोग करना संभव है। में कार्य और यूनिक्स

header('Content-type: text/html; charset=utf-8'); 

$locale_time = setlocale (LC_TIME, 'ru_RU.UTF-8', 'Rus'); 

function strf_time($format, $timestamp, $locale) 
{ 
    $date_str = strftime($format, $timestamp); 
    if (strpos($locale, '1251') !== false) 
    { 
     return iconv('cp1251', 'utf-8', $date_str); 
    } 
    else 
    { 
     return $date_str; 
    } 
} 

echo strf_time("%A, %B %d", time(), $locale_time); 

परिणाम:

вторник, Октябрь 13 
संबंधित मुद्दे