Windows で日付名を他の言語に変換する関数を使用しようとしましsetlocale()
たが、うまくいきませんでした。
<?php setlocale(LC_ALL, 'nl_NL');
echo date("l", strtotime($variable); ?>
誰かに代わりがありsetlocale()
ますか?Codeigniter フレームワークを使用しています。
Windows で日付名を他の言語に変換する関数を使用しようとしましsetlocale()
たが、うまくいきませんでした。
<?php setlocale(LC_ALL, 'nl_NL');
echo date("l", strtotime($variable); ?>
誰かに代わりがありsetlocale()
ますか?Codeigniter フレームワークを使用しています。
intl
を持つ拡張機能の使用を検討する必要がありますIntlDateFormatter
。
ドキュメントから:
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Second Formatted output is ".$fmt->format(0);
どの出力
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
nl_NL
典型的なUnixスタイルのロケール名です。Windowsでは、ロケールは異なる形式に従います。「nld」、「 holland 」、または「netherlands」が必要です。
さらに、date()
ロケールに対応していません。あなたはおそらく欲しいですstrftime()
。
date
ロケールに従って日付をフォーマットしません。strftime
します。
setlocale(LC_ALL, 'german');
echo (iconv('ISO-8859-2', 'UTF-8', strftime('%Y. %B %d. (%A)', mktime('0', '0', '0', '6', '18', '2010'))));
setlocale(LC_ALL, 'hungarian');
echo (iconv('ISO-8859-2', 'UTF-8', strftime('%Y. %B %d. (%A)', mktime('0', '0', '0', '6', '18', '2010'))));