我有這部分功能,它給了我英文月份的名字。我如何將它們翻譯成我的當地語言(塞爾維亞語)?PHP日期 - 獲取當地語言的月份名稱
$month_name = date('F', mktime(0, 0, 0, $i));
我有這部分功能,它給了我英文月份的名字。我如何將它們翻譯成我的當地語言(塞爾維亞語)?PHP日期 - 獲取當地語言的月份名稱
$month_name = date('F', mktime(0, 0, 0, $i));
你應該使用setlocale()
:
setlocale(LC_TIME, 'fr_FR');
$month_name = date('F', mktime(0, 0, 0, $i));
在這種情況下,將其設置爲法語。對於你的情況應該是下列之一:
sr_BA
- 塞爾維亞語(黑山)sr_CS
- 塞爾維亞語(塞爾維亞)sr_ME
- 塞爾維亞語(塞爾維亞和黑山)謝謝你的幫助:) – Sasha
我的'date'是locale不知道的,我的'strftime'不是。如果你的語言環境知道......你的PHP版本是什麼? – Wrikken
但請注意['setlocale'設置區域進程範圍](http://php.net/manual/en/function.setlocale.php#refsect1-function.setlocale-notes)(使用多線程時會導致意外的行爲多線程)。線程安全的替代方法:[IntlDateFormatter](http://php.net/manual/en/class.intldateformatter.php) – Matmarbon
你應使用setlocale()
和strftime()
:
setlocale(LC_TIME, 'sr_CS');
$month_name = strftime('%B', mktime(0, 0, 0, $i));
如果您使用setTimezone()並使用getTimestamp() – Thanatos11th
這個工作,它在datetime對象上有時區問題對我來說,可悲的是在我的機器上'setLocale()'不會影響'date()' –
$format = new IntlDateFormatter('sr_CS', IntlDateFormatter::NONE,
IntlDateFormatter::NONE, NULL, NULL, "MMM");
$monthName = datefmt_format($format, mktime(0, 0, 0, $i));
這是好主意,通過設置地方時編碼的例子:
<?php
date_default_timezone_set('Europe/Belgrade');
setlocale(LC_TIME, array('sr_CS.UTF-8', 'sr.UTF-8'));
'strftime',並安裝正確的語言環境,與當前區域設置爲塞爾維亞。 – Wrikken