翻译月份名称的最佳方式

时间:2012-09-26 05:30:07

标签: php codeigniter time

我正在使用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月返回

我需要以我的语言返回九月

4 个答案:

答案 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”。