CakePHP:CakeTime i18Date和time的信息格式

CakePHP:CakeTime i18Date和time的信息格式,cakephp,localization,internationalization,Cakephp,Localization,Internationalization,我正在使用CakeTime类对日期和时间进行本地化 对于日期,它可以像我希望的那样工作: $timestring = $this->Time->format('Y-m-d H:i:s', time()); echo 'DateTime: '.$this->Time->i18nFormat($timestring); // Result => DateTime: 11/08/2013 我希望它也能显示时间。 例如,在美国,他们使用AM/PM,在其他地方,他们使用2

我正在使用CakeTime类对日期和时间进行本地化

对于日期,它可以像我希望的那样工作:

$timestring = $this->Time->format('Y-m-d H:i:s', time());
echo 'DateTime: '.$this->Time->i18nFormat($timestring);

// Result => DateTime: 11/08/2013
我希望它也能显示时间。 例如,在美国,他们使用AM/PM,在其他地方,他们使用24小时表示法

我已经找过了,但似乎找不到这样做的方法

有什么想法吗

编辑* 要明确的是,本地化可以完美地处理LC_时间文件中的日期,但i18nFormat函数只返回日期,从我看到的情况来看,传递格式将使用该格式,而不是本地化格式,例如MM/DD/YYYY与DD.MM.YYYY在不同的语言环境中

*编辑2: 维科卡马乔在评论中给出的解决方案是正确的 因此,要以本地化形式获取日期+时间:

$this->Time->i18nFormat(time(), '%x %X') does the trick!

你可以使用这个方法。您还可以检查此repo以查找常见的日期/时间转换。请确保将它们存储在APP/locale//LC_TIMEdirectory

我有LC_time文件,是从/usr/share/i18n/locales/复制的,我面临的问题是我也想显示时间。i18nFormat函数只返回日期,效果很好。如果我将一种格式传递给i18nFormat函数,它还会使用LC_时间文件中的格式吗?从我所没有看到的。所以它不再是本地化的了。例如,在使用中,它是MM/DD/YYYY,在其他地方它是DD.MM.YYYY。即使我通过了一个固定的格式,cake是否足够聪明来修改它?我进一步研究发现,你可以做$this->Time->i18nformatime,“%x%x”这将根据区域设置输出日期和时间,也许这会做一些小动作。你已经更新了OP以反映你的解决方案,效果很好