我正在使用Codeigniter!翻译月份名称的最佳方式是什么?我在mysql时间戳中有一个日期,如下所示:
2012-09-22 11:21:53
我可以使用php 'September 22, 2012'
函数将其转换为date()
。我想将'September'
重命名为'Sentýabr'
。 set_locale()函数可以做到这一点。顺便说一下,它是Turkmen Language
。
谢谢。
好的,我创建了一些php文件,以便单独检查它:
cool.php
<?php setlocale(LC_ALL,'ru_RU');
echo strftime('%B',time());
?>
返回九月。可能是什么问题。
我有
/* Set locale to Turkmen */
setlocale(LC_ALL, 'tk');
和
echo strftime( '%B',time());
结果:9月返回
我需要以我的语言返回九月
答案 0 :(得分:10)
您可以将str_ireplace()
数组用于英文名称,并使用等同于土库曼语名称的数组。
这样的事情:
$nmeng = array('january', 'february', ..);
$nmtur = array('ocak', 'subat', ...);
$dt = 'September 22, 2012';
$dt = str_ireplace($nmeng, $nmtur, $dt);
答案 1 :(得分:5)
使用setlocale()
和strftime ...
在linux上运行$ locale -a
以查明是否安装了所需的语言环境并获取其名称值字符串。
setlocale(LC_TIME, 'ru_RU');
echo strftime('%B %e, %Y', strtotime('2012-09-22 11:21:53'));
<强> 编辑: 强>
如果您使用的是Windows服务器,请将%e
更改为%d
(%e
在Windows中不起作用。)
echo strftime('%B %d, %Y', strtotime('2012-09-22 11:21:53'));
对于Windows, check here to see supported format.
答案 2 :(得分:2)
翻译月份名称的最佳方式是将它们放入语言文件中并调用它,就像在此处阅读如何使用codeigniter Language library中的语言文件,如果您有双语站点,可以在项目中反复使用。< / p>
$this->lang->line('September');
your english language file
$lang['january'] = 'january';
$lang['february'] = 'february';
...
$lang['September'] = 'September';
your turkish language file
$lang['january'] = 'ocak';
$lang['february'] = 'subat';
...
$lang['September'] = 'Eylül';
答案 3 :(得分:0)
将其添加到top:
附近的index.php文件中/* Set locale to Turkmen */
setlocale(LC_ALL, 'tk');
此处的文档位于:http://php.net/manual/en/function.setlocale.php
另外,@ xdazz是正确的,你应该将它与strftime而不是date()函数结合起来。
您可能需要确认土耳其人使用“tk”。