ここに、同様の問題に直面していることがわかったことを要約します。これは、建設的な答えが明らかになく(間違った答え、確かに:setlocale()の出力が変わるstrftime())、他の人にも役立つ可能性があるためです。
PHPマニュアルによると
戻り値
新しい現在のロケールを返します。ロケール機能がプラットフォームに実装されていない場合、指定されたロケールが存在しない場合、またはカテゴリ名が無効な場合はFALSEを返します。
したがって、diagnosysの場合は、最初に、シェルまたはPHPを使用して、適切なロケール(nl_NL、nl_NL.UTF-8など)がインストールされていることを確認しますsystem('locale -a')。一部のubuntuシステムには、ロケールをインストールするためのスクリプトがあります。/usr/share/locales/install-language-pack nl_NLただし、apt-getを使用したインストールも検討される場合があります。(エキゾチックなロケールの場合は、ロケールがサポートされていることも確認してください:一部のシステムでは/usr/share/i18n/SUPPORTED)。
次に、を使用してsetlocale()の出力を取得できます(var_dump(setlocale('nl_NL'));単独setlocale()では何も出力されないため)。
解決策は、locale-gen nl_NL、nl_NLを使用してロケールを再生成することです。
その後、一部のシステムではupdate-locale(およびdpkg-reconfigure locales)が必要になる場合があります。