2017-02-15 8 views
-1

データの出力をローカライズしようとしています。setlocale()in Controller Laravel

setlocale(LC_TIME, 'et_EE.utf8'); 
echo strftime("%H:%M %A, %d %B"); 

エストニア語ではなく、英語の形式で取得します。 しかし、もし私がジョブクラスでそれをしたら、すべてOKです。私のコントローラで 私はそれをその場で変更のタイムゾーンだけでなく、あなたの両方の方法でコンフィギュレーションレベルの設定を記述し、もう一回だけsetlocale(LC_TIME, 'et_EE.utf8');

+0

を実行する私は、あなたが明確になり、あなたが直面している問題で何を理解していませんか? –

+0

私はエストニア語Langugage(日付)でこの例の結果を取得する必要がありますが、代わりに私は英語のvariant.Butジョブクラス(laravelフレームワーク)で実行された場合 - すべてのok.Problemコントローラで行うことを試みます。 –

+0

Oh、Okay .. 基本となるオペレーティングシステムについて教えてください。 Linuxの場合、インストールされているロケールに依存します –

答えて

0

チェックアウトリンクをsetlocale()を呼び出していませんでした
Stackoverflow

Laracast

+0

質問はタイムゾーンに関するものではありません。 1月2日水曜日エストニア語で表示する必要があります - 1 VeebruarKolmapäev –

+0

さて、ユーザーのタイムゾーンを取得し、毎回ユーザーのタイムゾーンにデータを変換する必要があります。このコードをチェックしてデータをタイムゾーンに変換してください。これはCookie '$ new_date = \ Carbon :: createFromFormat($ format、$ date) - > setTimezone(Cookie :: get( 'timezone'))に格納されています。 if($ type == 'object'){ return $ new_date; } else { return $ new_date-> format($ format); } ' – Webinion

+0

言語を変換する必要がありますか、日付のタイムゾーンを変換する必要がありますか? – Webinion

0

ファーストなぜなら、PHPがset_localeと干渉しないので、set_localeは同じ名前のC関数を直接呼び出すため、set_localeは別の場所ではなく別の場所で動作することがとても奇妙です。

Linuxでは、システムにロケールがインストールされている必要があります。 は、Ubuntuはthis

をチェックするためには、別の

にシステムとは異なり、使用にロケールを追加するには、この

en_US.utf8 
et_EE.utf8 

のようなリストを参照してくださいする必要がありlocale -a

コマンド をサポートされているロケールを確認するには

アーチなどの場合は、/etc/locale.genを編集して、希望のロケールのコメントを解除します。その後、sudo locale-gen

出来上がりあなたのコードが動作します。..

+0

Exacly - it laravel.But私がそれを呼び出すコントローラでは、私は結果をログファイルに入れて、そして私が見ているものは、echo setlocale(LC_TIME、 'et_EE。utf8 ');私に空の結果を返す:( –

+0

'set_locale'はPHPの一部であり、laravelではありません..あなたの話は私には意味がありません..これはもっと掘り下げが必要です。 –