質問

PHPで現在の時刻を表示しようとする( this を使用) :

$date = date('m/d/Y h:i:s a', time());                      
echo $date;

できるだけ簡単です。ローカライズするにはどうすればよいですか?月と日をヘブライ語に翻訳したい。

ありがとう。

役に立ちましたか?

解決

Zend_Date は完全に国際化されています。簡単な方法で確認してください:

  

すべてのフルネームおよび略称   月と平日がサポートされています   130以上の言語。方法   の入力と出力の両方をサポート   ローカライズされた名前を使用した日付   月と平日、   に関連付けられた従来の形式   各ロケール。

他のヒント

実際には、PHP 5.2ではまったく可能だとは思いません:-(

少なくとも、PHPに同梱されているものではありません(ただし、PHPでコード化されたライブラリは、他の指摘のように使用できます)


ただし、PHP 5.3では、 IntlDateFormatter クラスがあります。あなたが欲しい:

  

このクラスはICUの日付を表します   フォーマット機能。それが可能   ローカライズされた日付を表示するユーザー   文字列をPHPにフォーマットまたは解析する   パターン文字列を使用した日付値   および/または缶詰のパターン。

たとえば、次のようにそのクラスを使用します:

echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

次のようになります:

dimanche 9 novembre 2008 23:54:47 GMT+00:00
9 nov. 2008 23:54
2008年11月9日星期日 下午11時54分47秒 GMT+00:00
2008/11/9 下午 11:54
Sunday, November 9, 2008 11:54:47 PM GMT+00:00
Nov 9, 2008 11:54 PM

非常に見栄えが良いですね?

残念なことに、PHP 5.3は数か月前のものであり、多くのホスティングサービスでは利用できません...そして、アプリケーションのテスト(およびおそらく修正)が必要になります...


それについて考える:多分、PHP 5.2に PECL intl拡張機能をインストールして、同じ機能...

Zend_DateやIntlDateFormatterよりも簡単な方法が必要な場合は、phpの標準の strftime 関数を試してください。 Ubuntuでphp 5.3を実行しているロシア語(ロシア語のロケールはインストールされていません)で起動して実行するために私がやったことです。

ロケールをインストールするには

  1. cd / usr / share / locales
  2. sudo ./install-language_pack ru_RU
  3. sudo dpkg-reconfigure locales
  4. Apacheを再起動

次に、次のphpスニペットを使用します。

setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());

今日の曜日を出力する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top