用PHP本地化当前时间

时间:2009-09-13 22:26:26

标签: php time string hebrew localization

尝试使用PHP显示当前时间(使用this):

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

尽可能简单。我该如何本地化?我想将这几个月和几天翻译成希伯来语。

感谢。

3 个答案:

答案 0 :(得分:8)

Zend_Date完全国际化。你应该检查一下这个方法:

  

所有完整和缩写的名称   支持月份和工作日   超过130种语言。方法   支持输入和输出   使用本地化名称的日期   月份和工作日,在   与之相关的传统格式   每个地区。

答案 1 :(得分:5)

实际上,我认为在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 extension,并获得相同的功能......

答案 2 :(得分:2)

如果您需要一种比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
  5. 接下来,使用以下php代码段:

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

    应该输出今天的星期几。