用PHP本地化当前时间

Tom*_*ash 5 php string time localization hebrew

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

$date = date('m/d/Y h:i:s a', time());                      
echo $date;
Run Code Online (Sandbox Code Playgroud)

尽可能简单.我该如何本地化?我想把这些月份和日子翻译成希伯来语.

谢谢.

kar*_*m79 8

Zend_Date完全国际化.你应该检查一下这个简单的方法:

所有完整和缩写的月份和工作日名称均支持超过130种语言.方法使用与每个语言环境关联的常规格式,使用月份和工作日的本地化名称来支持日期的输入和输出.


Pas*_*TIN 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";
Run Code Online (Sandbox Code Playgroud)

你会得到:

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
Run Code Online (Sandbox Code Playgroud)

哪个看起来很不错,不是吗?

可悲的是PHP 5.3只有几个月的时间了,并且在许多托管服务上都没有...并且需要为您的应用程序进行测试(可能还有修复)......


考虑一下:也许你可以在PHP 5.2上安装PECL intl扩展,并获得相同的功能......