尝试使用PHP显示当前时间(使用this):
$date = date('m/d/Y h:i:s a', time());
echo $date;
尽可能简单。我该如何本地化?我想将这几个月和几天翻译成希伯来语。
感谢。
答案 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的俄语运行并运行的东西(俄语语言环境未安装)。
安装区域设置
cd /usr/share/locales
sudo ./install-language_pack ru_RU
sudo dpkg-reconfigure locales
接下来,使用以下php代码段:
setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());
应该输出今天的星期几。