2012-05-07 2 views
6

可能性の重複:
strtotime With Different Languages?
Get list of localized monthsPHPの日付、国際月の名前は?

私は私のデータベースのうち、日付時刻を取得し、そのようにフォーマット:

$row['datetime'] = date('jS F Y',strtotime($row['datetime'])); 

これは入れますフォーマット:

28th March 2012 

フランス語のユーザーには3月ではなく火星が表示されるので、月の名前をローカライズするにはどうすればよいですか?

おかげ

答えて

8

setlocaleおよびstrftimeを使用すると、日付文字列のローカライズ版を取得できます。 PHPドキュメントから

例 - http://php.net/manual/en/function.setlocale.php

/* Set locale to Dutch */ 
setlocale(LC_ALL, 'nl_NL'); 

/* Output: vrijdag 22 december 1978 */ 
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978)); 

/* try different possible locale names for german as of PHP 4.3.0 */ 
$loc_de = setlocale(LC_ALL, '[email protected]', 'de_DE', 'de', 'ge'); 
echo "Preferred locale for german on this system is '$loc_de'"; 
+3

しかし、['setlocale'はロケールプロセスを広く設定することに注意してください(http://php.net/manual/en/function.setlocale.php#refsect1-function.setlocale-notes)(使用時に複数のスレッドで予期しない動作が発生するマルチスレッド)。スレッドセーフ代替:[IntlDateFormatter](http://php.net/manual/en/class.intldateformatter.php) – Matmarbon

2

容易な、strftimesetlocaleを利用しています。

setlocale(LC_ALL, 'fr_FR.utf-8'); // ou LC_TIME 
echo strftime('%A'); 
"lundi" 

FAIS注目utiliserラバージョンUTF-8 SI TUはUNE出撃ユニコード、sinon、ラ・バージョンを出席ノルマルTE donneraデュISO-8859-1(5)。

残りのコミュニティでは、strftimeはロケールセットを尊重し、glibc(バックグラウンドで)を使用します。 dateが常に英語を返す場合strftimesetlocaleを尊重し、あなたの言語で期待される出力を提供します。

+17

英語してください。これは**英語**のサイトです... – Neal

+0

ああ、あまりにもそれを打つ! –

+0

私のフランス語、それはとても魅力的でした。 – greut

関連する問題