Php 使用其他数组值上的日期\格式结果作为键提取数组的Smarty值

Php 使用其他数组值上的日期\格式结果作为键提取数组的Smarty值,php,smarty,Php,Smarty,我在smarty模板中有两个阵列:$months和$contract {$months | var_dump}得到以下结果: 数组大小=12 1=>字符串“ааааа”长度=12 2=>字符串“фааааааа”长度=14 3=>字符串“аааиаа”长度=10 4=>字符串“аПаааааааааа”长度=12 5=>字符串“аааааа”长度=6 6=>字符串长度=8 7=>字符串长度=8 8=>字符串“аааГаСаа”长度=14 9=>字符串的长度=16 10=>字符串的长度=14 11

我在smarty模板中有两个阵列:$months和$contract

{$months | var_dump}得到以下结果: 数组大小=12 1=>字符串“ааааа”长度=12 2=>字符串“фааааааа”长度=14 3=>字符串“аааиаа”长度=10 4=>字符串“аПаааааааааа”长度=12 5=>字符串“аааааа”长度=6 6=>字符串长度=8 7=>字符串长度=8 8=>字符串“аааГаСаа”长度=14 9=>字符串的长度=16 10=>字符串的长度=14 11=>字符串的长度=12 12=>字符串的长度=14

数组值是genitive中月份的俄文名称

{$contract | var_dump}得到这个 'date_till'=>'1355518365'长度=10

所以我需要先创建一个月号,从$contract.date\u到。通常是这样做的

{$contract.date_till|date_format:"%m"}
现在的问题是:如何通过$contract.date\u till和date\u格式的月份号从$months数组中提取月份名称

我尝试过smarty手册中描述的许多变体,但没有一个是有效的。例如,这一个没有:
{$months[{$contract.date|date|格式:%m}}

{assign var=monthNo value=$contract.date|date|格式:%m}

{$monthNo}
这将为您提供必要日期的月份。

与英语不同,俄语中每个句子中每个用例中的每个名词都有特殊的语法格。%B给了我主格,但我需要属格。这就是为什么我决定通过手动创建的数组将所有需要的案例传递给smarty。然后创建一个月数组,该数组具有arrayJanuary=>俄语等效值,以此类推,直到12月,并将其提供给smarty文件。然后写{assign var=monthName value=$contract.till|date_格式:%B}{$month.$monthName}应该以俄语给出月份谢谢,您的变体工作正常,但很难在每次我想要输出月份名称时都使用它。无论如何,对我的问题感兴趣的thx非常好。您可以在服务器中使用locale-a检查您的区域设置,并检查是否安装了俄语,否则安装俄语。在php文件中写入setlocaleLC_ALL,'ru_ru',当使用{$contract.till_date | date_格式:%B}时,您的月份名称将以俄语自动显示在smarty文件中。