用PHP本地化当前时间
-
07-07-2019 - |
题
尝试使用PHP显示当前时间(使用此) :
$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的俄语运行并运行的东西(俄语语言环境未安装)。
安装区域设置
-
cd / usr / share / locales
-
sudo ./install-language_pack ru_RU
-
sudo dpkg-reconfigure locales
- 重启Apache 醇>
接下来,使用以下php代码段:
setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());
应该输出今天的星期几。
不隶属于 StackOverflow